【发布时间】:2013-12-20 15:49:29
【问题描述】:
我在初始化程序中设置了一个自定义记录器:
# /config/initializers/logging.rb
log_file = File.open("#{Example::Application.config.root}/log/app.log", "a")
AppLogger = ActiveSupport::BufferedLogger.new(log_file)
AppLogger.level = Logger::DEBUG
AppLogger.auto_flushing = true
AppLogger.debug "App Logger Up"
虽然它会在我启动应用程序时创建日志文件,但它不会写入日志文件。来自初始化程序中的AppLogger.debug "App Logger Up" 或正在运行的应用程序中其他地方的类似代码。
但是,我偶尔会在文件中找到日志语句,但似乎没有任何模式。似乎它正在缓冲日志消息并在需要时转储它们。但是我将 auto_flushing 设置为 true,这应该会导致它立即刷新缓冲区。
发生了什么,我怎样才能让它发挥作用?
注意:使用$ tail -f "log/app.log" 跟踪日志也不会获取更改。
我正在使用 POW,但我也尝试使用 WEBrick 并获得相同(缺乏)的结果。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 logging buffer activesupport