Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中只记录一次特定事件_Ruby_Logging - Fatal编程技术网

在ruby中只记录一次特定事件

在ruby中只记录一次特定事件,ruby,logging,Ruby,Logging,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 e

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
另外,是否有一个术语来表示只记录一次特定事件类型的概念

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

编辑:我使用的是,而不是Rails。我认为“每次脚本运行一次”应该是“一次”。

我不知道有一次,但是扩展日志程序来创建自己的日志并不太困难。它本质上是为日志实现缓存,但不是像普通应用程序那样从缓存中获取并返回它,而是在缓存后将其取消。这个日志缓存的实现和过期策略留给读者作为练习

比如:

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
class-idellogger
每个请求一次?每个应用程序启动一次?每小时一次?