我有一個運行環境與Rails應用程序,Sidekiq和發條調度的目的。Sidekiq工人的不同日誌級別 - Ruby方法?
我有許多不同的工作人員,充滿了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
.... ...
但是,如果更改了一個工人的水平,這個水平將在未來一個指定的級別被覆蓋 - 例如如果兩名工人一起處理,第二名工人將「贏」。
以優雅的方式達到此目的的最佳方法是什麼?
從Java世界的到來,我只能想創建一個自定義記錄器,並把它在每一個工人,複製由Sidekiq記錄器使用的輸出格式,增加了記錄方法在每個工人像
def logger
logger = MyLogger.new
end
和改變當我在初始化方法中使用它時的級別
這是Ruby中的最佳方法嗎?
這是一個奇怪的黑客,但這是「Sidekiq記錄器使用的複製輸出格式」的一部分,Sidekiq格式化器的複製和粘貼:-)我想知道是否有更好的方法,例如用DEBUG和另一個實例化Sidekiq記錄器一個與INFO – emas
嗯......你不需要在Sidekiq格式化程序中打破。只需將級別設置爲DEBUG以查看所有文件,然後檢查是否要查看該打印並在需要時移交默認格式化程序(請參閱幾乎相同的示例@ http://www.ruby-doc.org/stdlib- 1.9.3 // libdoc /記錄器/的RDoc/Logger.html)。 – mudasobwa