我有这个古老而简单的Sinatra API。它的版本是1.4.8。这很简单,而且会被重写。在短期内,我需要添加一些调试语句来修复它。我发现只需将它们发送到STDOUT即可在屏幕上实时观看它们。
我看到1.3版本中包含了一个记录器,但我似乎找不到一个如何实现它的好教程页面。我不需要复杂的日志记录类。我想做的最多就是登录文件。如果没有大量的时间投入,有没有一种简单的方法可以做到这两种方法?
我发现this page非常好地概述了这个过程。
此代码块包含我的更改:
::Logger.class_eval { alias :write :'<<' }
access_log = ::File.join(::File.dirname(::File.expand_path(__FILE__)),'log','access.log')
$access_logger = ::Logger.new(access_log)
$error_logger = ::File.new(::File.join(::File.dirname(::File.expand_path(__FILE__)),'log','error.log'),"a+")
$error_logger.sync = true
configure :development do
$access_logger.level = Logger::DEBUG
use ::Rack::CommonLogger, $access_logger
end
configure :production do
$access_logger.level = Logger::WARN
use ::Rack::CommonLogger, $access_logger
end
我刚刚更改了开发和生产的日志记录级别。我还将记录器变成了我可以从代码的其他部分访问的变量。
所以对于我的主API模块,我可以输出变量或其他任何内容:
$access_logger.debug "subscription_id is #{subscription_id}."
效果很好!