我尝试将我的 rails (3.2.17) 应用程序在生产和暂存中的所有日志记录移动到 papertrail。现在我正在尝试像这样设置sidekiq的记录器config/initializers/sidekiq.rb
:
Sidekiq.configure_server do |config|
Sidekiq::Logging.logger = RemoteSyslogLogger.new('logs.papertrailapp.com', ENV.fetch('PAPERTRAIL_PORT'), program: "sidekiq-#{Rails.env}")
end
当我尝试通过以下方式启动 sidekiq 时:
bundle exec sidekiq --index 0 --pidfile <PATH_TO_PID> --environment staging --daemon
我明白了
You really should set a logfile if you're going to daemonize
...bundle/ruby/2.0.0/gems/sidekiq-2.17.4/lib/sidekiq/cli.rb:141:in `daemonize'
...bundle/ruby/2.0.0/gems/sidekiq-2.17.4/lib/sidekiq/cli.rb:39:in `parse'
...bundle/ruby/2.0.0/gems/sidekiq-2.17.4/bin/sidekiq:7:in `<top (required)>'
...bundle/ruby/2.0.0/bin/sidekiq:23:in `load'
...bundle/ruby/2.0.0/bin/sidekiq:23:in `<main>'
但是,如果我先给 sidekiq 一个虚拟的日志记录:
bundle exec sidekiq --index 0 --pidfile <PATH_TO_PID> --environment staging --daemon --logfile /dev/null
它就像一个魅力(日志被发送到 papertrail),因为初始化程序似乎覆盖了以前的选项。
但我觉得这种方法很丑陋。有人对此有更清洁的方法吗?