【问题标题】:Resque log handling: what sort of strategy?Resque 日志处理:什么样的策略?
【发布时间】:2013-08-12 18:12:21
【问题描述】:

我在使用 Resque 记录器时遇到了一些问题。当我从命令行正常启动它时一切正常(它刷新到标准输出)。但是一旦我对其进行去魔化,我就再也看不到日志了。我以为它会默认使用 Rails 应用程序记录器,但那里什么也没有。另外,我正在使用一个库,它将其大部分输出(主要用于调试目的)写入标准错误和标准输出(即 $stderr 和 $stdout)。这些常量是否刷新到 resque 记录器(此外,应该是)?我怎么能把它们捆绑在一起?

不仅如此,我还想将一个fork进程的日志写到一个单独的文件中,也就是说,我需要在处理作业之前更改日志文件。哪里(哪个钩子)最适合它?

【问题讨论】:

    标签: logging resque


    【解决方案1】:

    问题一:

    我认为它会默认使用 Rails 应用记录器

    答案 1:

    Nope Resque 记录器默认日志为STDOUT,您已将其更改为记录到特定文件。

    问题2:

    另外,我使用的库将其大部分输出(主要用于调试目的)写入标准错误和标准输出(即 $stderr 和 $stdout)。

    答案2:

    不,除非他们使用Resque.logger.[info|warn|error] 语法记录输出

    问题3:

    不仅如此,我还想将一个fork进程的日志写到一个单独的文件中,也就是说,我需要在处理作业之前更改日志文件。哪里(哪个钩子)最适合它?

    答案 3:

    我认为你可以做到这一点,你所要做的就是在 resque 钩子中重新定义 Resque.logger 喜欢before_perform

       def self.before_perform
         Resque.logger = File.open(File.join("path"))
       end
    

    然后在任何地方使用Resque.logger.[info | warn | error]

    希望有帮助

    【讨论】:

    • 我使用了 gem resque_logger 并对其进行了修补以满足我的需求,因为它与 resque_status gem 扩展不兼容。尽管如此,你写的大部分是正确的,我不得不面对关于 activerecord 连接的类似问题,我不得不通过你的回复来解决这个问题。
    猜你喜欢
    • 2021-07-29
    • 2012-03-23
    • 2011-07-08
    • 2011-05-19
    • 2021-10-24
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多