【问题标题】:Rails Custom Logger Writes To Log SporadicallyRails 自定义记录器写入偶尔记录
【发布时间】: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


    【解决方案1】:

    this 问题的已接受答案的评论中找到答案:

    我补充说:

    log_file.sync = true
    

    现在它可以工作了。

    【讨论】:

    • @pedr..嗨,我只想为来自数据库的 api 调用编写日志文件..需要您的帮助..还尝试了上面的代码来编写日志,但它对我没有帮助它没有写在日志文件中
    猜你喜欢
    • 2013-01-09
    • 2017-12-23
    • 1970-01-01
    • 2011-09-08
    • 2022-10-15
    • 1970-01-01
    • 2014-01-26
    • 2016-11-04
    • 2023-03-12
    相关资源
    最近更新 更多