将 rufus-scheduler 日志传递到 production.log 文件
Pass rufus-scheduler logs to production.log file
如何将所有日志从 rufus-scheduler 重定向到 log/production.log?
例如,在控制台中我可以看到类似的东西:
↳ config/initializers/XXX_scheduler.rb:15
{ 70173962355140 rufus-scheduler intercepted an error:
70173962355140 job:
70173962355140 Rufus::Scheduler::CronJob "43 12 * * *" {}
70173962355140 error:
70173962355140 70173962355140
70173962355140 NoMethodError
70173962355140 undefined method passenger_user for nil:NilClass
...
我在 puma 错误 (puma.error.log) 生产文件中发现了这个错误文本。
deploy.rb的一部分:
set :puma_error_log, "#{release_path}/log/puma.error.log"
如何将与 rufus-scheduler 相关的所有日志重定向到 production.log?
抱歉回答晚了。
您看到的是 Scheduler#on_error
的输出。默认情况下它输出到 stderr.
这个目的地也可以被覆盖为 explained in the readme but it's probably better to override #on_error
, as detailed in the readme。
你的#on_error
可能看起来像
def scheduler.on_error(job, error)
Rails.logger.error(
"err#{error.object_id} rufus-scheduler intercepted #{error.inspect}" +
" in job #{job.inspect}")
error.backtrace.each_with_index do |line, i|
Rails.logger.error(
"err#{error.object_id} #{i}: #{line}")
end
end
因此简单地搭载 Rails 日志基础设施。
original #on_error写的很详细。如果您需要更多调试信息,请随时从中获取灵感。
如何将所有日志从 rufus-scheduler 重定向到 log/production.log?
例如,在控制台中我可以看到类似的东西:
↳ config/initializers/XXX_scheduler.rb:15
{ 70173962355140 rufus-scheduler intercepted an error:
70173962355140 job:
70173962355140 Rufus::Scheduler::CronJob "43 12 * * *" {}
70173962355140 error:
70173962355140 70173962355140
70173962355140 NoMethodError
70173962355140 undefined method passenger_user for nil:NilClass
...
我在 puma 错误 (puma.error.log) 生产文件中发现了这个错误文本。 deploy.rb的一部分:
set :puma_error_log, "#{release_path}/log/puma.error.log"
如何将与 rufus-scheduler 相关的所有日志重定向到 production.log?
抱歉回答晚了。
您看到的是 Scheduler#on_error
的输出。默认情况下它输出到 stderr.
这个目的地也可以被覆盖为 explained in the readme but it's probably better to override #on_error
, as detailed in the readme。
你的#on_error
可能看起来像
def scheduler.on_error(job, error)
Rails.logger.error(
"err#{error.object_id} rufus-scheduler intercepted #{error.inspect}" +
" in job #{job.inspect}")
error.backtrace.each_with_index do |line, i|
Rails.logger.error(
"err#{error.object_id} #{i}: #{line}")
end
end
因此简单地搭载 Rails 日志基础设施。
original #on_error写的很详细。如果您需要更多调试信息,请随时从中获取灵感。