Railsアプリケーション、Sidekiq、およびスケジューリング用のクロックワークmodを備えた実行環境があります。
私は logger.debug と logger.info の命令で満たされた多くの異なるワーカーを持っており、何が起こっているのかを知るために、それらのいくつかでデバッグ ログをアクティブにする必要がある場合があります。私はSidekiqロガーが好きで、仕事をするためにワーカーで「logger.debug」命令が必要なだけなので、それを利用したいと思っています.
現在のセットアップで見逃しているのは、一部のワーカーの DEBUG レベルを有効にし、他のワーカーを標準の INFO のままにしておく可能性です。
今、私の各ワーカーには、次の初期化メソッドがあります。
class SendMailOnStart
include Sidekiq::Worker
sidekiq_options :retry => false, :queue => :critical
def initialize
logger.level = Logger::INFO
end
.... ...
ただし、1 つのワーカーのレベルを変更すると、このレベルは次のワーカーで指定されたレベルで上書きされます。たとえば、2 つのワーカーが一緒に処理された場合、2 番目のワーカーが「優先」されます。
これをエレガントな方法で達成する最良の方法は何ですか?
Javaの世界から来て、カスタムロガーを作成して各ワーカーに配置し、Sidekiqロガーで使用される出力形式をコピーし、各ワーカーにロガーメソッドを追加することしか考えられません
def logger
logger = MyLogger.new
end
初期化メソッドで必要なときにレベルを変更する
これはRubyでの最良のアプローチですか?