【问题标题】:Reliable Heroku Console Logging可靠的 Heroku 控制台日志记录
【发布时间】:2013-10-07 18:31:21
【问题描述】:

我正在 Heroku 上运行一个 worker dyno,它使用 rufus-scheduler 来完成一些工作。

在工作期间,它会将一些消息记录到控制台(使用简单的 puts),但是这些消息只是不可靠地传输到 Heroku 日志和 Logentries 等附加组件。

当我重新启动测功机时,所有丢失的控制台消息都会在进程退出之前打印在控制台上。 这种行为是否与某些缓冲有关?我该如何规避这个? 还是与 rufus-scheduler 在 Threads 中产生工作有关?

我在 Heroku 文档中阅读了一些关于防止缓冲基于 Rack 的应用程序的选项的内容,但不适用于工作人员测功机。

问候斯特凡

【问题讨论】:

    标签: ruby logging heroku rufus-scheduler


    【解决方案1】:

    阅读https://devcenter.heroku.com/articles/logging#writing-to-your-log

    我猜你只是在写控制台。你有没有尝试添加

    $stdout.sync = true
    $stderr.sync = true # eventually
    

    到您的 config.ru 或在您的应用程序的头部?

    您也可以尝试将同步设置为 true,而不是全局设置

    puts "logging... hello world..."
    puts "oh and, this is what happened"
    $stdout.flush
    

    在每次记录后刷新,但这很无聊。

    如果您不以这种方式登录,请在您的问题中进行解释,不要指望读者的占卜能力。

    【讨论】:

    • 谢谢,我会试试的!抱歉,我错过了在我的代码中使用简单的“放置”。
    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多