我有这个简单的旧Sinatra API。它是版本1.4.8。这很简单,将要重写。在短期内,我需要向其中添加一些调试语句以修复某些问题。我发现只是将它们发送到STDOUT以便在屏幕上实时观看它们。
我看到1.3版中包含一个记录器,但是我似乎找不到如何实现它的良好教程页面。我不需要复杂的日志记录类。我最想做的就是登录到文件。是否有一种简单的方法可以在不花费大量时间的情况下完成上述任一操作?
答案 0 :(得分:1)
我发现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}."
太棒了!