2013-12-20 51 views
0

我已经建立了在初始化一个自定义记录器:Rails的自定义记录程序写入日志偶尔

# /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并获得相同(缺少)结果。

回答

1

发现到接受的答案评论回答上this问题:

我说:

log_file.sync = true 

现在它的工作原理。

+0

@ pedr..Hi我想写日志文件仅用于来自数据库的api调用..需要你的帮助..也试过你的上面的代码来写日志,但它没有帮助我,因为它没有写在日志文件 – Catmandu

相关问题