Resque日志处理:什么样的策略



我的Resque记录器有一些问题。当我从命令行正常启动它时,一切都很好(它会刷新到标准输出)。但我一解除监视,就再也看不到日志了。我以为它会默认为Rails应用程序记录器,但没有显示任何内容。此外,我使用的库将其大部分输出(主要用于调试目的)写入标准错误和标准输出(即$stderr和$stdout)。这些常量是否刷新到resque记录器(此外,它们应该刷新吗)?我怎么能把它们捆在一起呢?

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

问题1:

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

答案1:

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

问题2:

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

答案2:

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

问题3:

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

答案3:

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

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

然后在所有中使用Resque.logger.[info | warn | error]

希望这能帮助

最新更新