ruby中是否有任何日志框架允许您只记录一次特定的事件类型?
logger = IdealLogger.new
logger.log(:happy_path, "We reached the happy path") # => logs this message
logger.log(:happy_path, "We reached the happy path yet again") # => Doesn't log this
logger.log(:sad_path, "We've encountered a sad path!") # => logs this message
此外,是否只有一次记录某个事件类型的概念?
修改:我正在使用Plain Old Ruby Objects,而不是Rails。我记得“每次运行脚本一次”为“一次”。
答案 0 :(得分:2)
我不知道一个,但扩展Logger制作自己的并不太难。它本质上是为您的日志记录实现缓存,但不是像使用普通应用程序那样从缓存中获取并返回它,而是在缓存时撤消它。此日志缓存的实现和到期策略留给读者练习。
类似的东西:
class IdealLogger < Logger
def info(event = nil, progname = nil, &block)
super(progname, &block) unless event_is_cached(event)
end
# define debug, warn, error, fatal, and unknown the same way, override others
# as you wish.
end