我在初始化程序中设置了自定义记录器:
# /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并获得相同(缺乏)结果。