1

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

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

4

1 回答 1

2

问题1:

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

答案1:

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

问题2:

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

答案 2:

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

问题 3:

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

答案 3:

好吧,我认为您可以做到这一点,您所要做的就是重新定义Resque.loggerin resque 钩子,例如before_perform

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

然后Resque.logger.[info | warn | error]到处使用

希望这有帮助

于 2013-08-16T05:53:12.773 回答