gpt4 book ai didi

ruby-on-rails - 让 Sidekiq 使用 Papertrail

转载 作者:行者123 更新时间:2023-12-01 06:30:08 29 4
gpt4 key购买 nike

我尝试将生产和暂存中的 Rails (3.2.17) 应用程序的所有日志记录移动到 papertrail。现在我正在尝试在 config/initializers/sidekiq.rb 中为 sidekiq 设置记录器像这样:

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),因为初始化程序似乎覆盖了前一个选项。

但我觉得这种方法很丑陋。有人收到 清洁方法 到这个?

最佳答案

我与 sidekiq 的所有者讨论了这个问题,他提出了一个很好的观点:从进程启动到初始化程序运行,很多事情都可能出错。如果记录器只在初始化器中初始化,那么之前发生的一切都不会出现在任何日志中。

我可能会使用 sidekiq 所有者推荐的方法:

bundle exec sidekiq | logger -t sidekiq

关于ruby-on-rails - 让 Sidekiq 使用 Papertrail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22983549/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com