用ruby脚本实现日志记录器

用ruby脚本实现日志记录器,ruby,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文件,在其中我想包括logge

这是一个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
class MyLoggingClient
include Logging

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

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


我的要求是,有很多ruby脚本文件,我想在模块中添加一个日志,并在每个文件中包含它,而不是在日志文件中写入日志,它可能是警告,它可能是一个信息或其他任何东西。

从您的问题中我可以收集到的是代码工作正常。。。你只是对它的作用感到困惑。。。如果这是正确的,那么解释一下,当您从类中的任何位置记录任何类时,方法调用logger.log这是一条日志消息,它会将该消息记录到启动脚本的控制台


这能回答你的问题吗?

更好的选择是:

module Logging

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

end
像这样使用它

module Logging

  def logger
    Logging.logger
  end

  def self.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

关于我现在的问题,你能告诉我我是否包括Logger.news吗?这意味着什么?你只能包括模块,作为混音。您可以在此处阅读更多内容:如果您在类的顶部编写了包含日志的内容,那么它将引入与您在日志模块中定义的方法相同的方法,并允许您执行logger.log这是一条日志消息,它来自您包含日志模块的类中的任何位置。当您调用logger.log时。。。然后,它会将您在消息中写入的内容输出到控制台。非常方便调试。例如,您可以在方法中途向控制台输出一个变量。e、 g.logger.logTrouble变量:{the_trouble_Variable}这有意义吗?基本上,这将通过在脚本执行期间能够输出数据来帮助您调试脚本。现在,您能告诉我我的问题的一些内容吗?如果我包括logger.news,这是什么意思