在ruby脚本中实现logger

时间:2012-09-13 07:12:42

标签: ruby

这是一个ruby脚本,我用来记录我的状态。

require 'logger'

log = Logger.new( 'log.txt', 'daily' )

log.debug "Once the log becomes at least one"
log.debug "day old, it will be renamed and a"
log.debug "new log.txt file will be created."

现在我想创建一个新的ruby文件,其中我想包含logger它可以是这样的

module Logging

  def logger
    Logging.logger
  end

  def self.logger
    @logger ||= Logger.new(STDOUT)
  end

end

但是我无法理解这一点,所以任何人都可以解释它。

我的要求就像有很多ruby脚本文件我想把一个记录器放在模块中并且在每个文件中都包含它而不是写入日志文件中的日志它可以警告它可以是信息或其他任何东西。

2 个答案:

答案 0 :(得分:0)

我可以从你的问题中收集到的是代码的工作原理......你只是对它的作用感到困惑......如果这是正确的那么解释,当你inculde Logging在你的任何一个类中来自在类方法的任何地方调用logger.log("This is a log message")它会将该消息记录到启动脚本的控制台。

这会回答你的问题吗?

答案 1 :(得分:0)

更好的选择是:

module Logging

def logger
@logger ||= Logger.new(STDOUT)
end

end

并像这样使用

class MyLoggingClient
include Logging

#Now you have access to the method `logger` and the instance variable `@logger`.

end