我無法在任何地方找到有關如何使queue_classic將日誌寫入文件的解決方案。 Queue_Classic用於記錄的滾動似乎也沒有任何示例。如何配置queue_classic日誌記錄
有人可以提供一個工作的例子嗎?
我無法在任何地方找到有關如何使queue_classic將日誌寫入文件的解決方案。 Queue_Classic用於記錄的滾動似乎也沒有任何示例。如何配置queue_classic日誌記錄
有人可以提供一個工作的例子嗎?
QC所調用的方法中的記錄將成爲記錄的來源。例如,在rails中。任何對Rails.logger的調用都將轉到適合您的RAILS_ENV的日誌文件。來自卷軸的日誌數據發送到標準輸出,因此您可以在啓動它們時將隊列中的標準輸出傳輸到日誌文件。
您可以用god.rb給予類似這樣(我已經離開你的配置隊列數量,目錄等給你)一個god.rb配置實例控制你的隊列:
number_queues.times do |queue_num|
God.watch do |w|
w.name = "QC-#{queue_num}"
w.group = "QC"
w.interval = 5.minutes
w.start = "bundle exec rake queue:work" # This is your rake task to start QC listening
w.gid = 'nginx'
w.uid = 'nginx'
w.dir = rails_root
w.keepalive
w.env = {"RAILS_ENV" => rails_env}
w.log = "#{log_dir}/qc.stdout.log" # Or.... "#{log_dir}//qc-#{queue_num}.stdout.log"
# determine the state on startup
w.transition(:init, { true => :up, false => :start }) do |on|
on.condition(:process_running) do |c|
c.running = true
end
end
end
end
FWIW,我發現STDOUT日誌數據不太有用,可能最終只發送給bitbucket。
如果日誌數據沒用,我們應該考慮刪除它。
當我從命令行運行它時,DEBUG非常好。當我試圖弄清楚我所做的一切時(通常是捆綁問題,路徑問題等)。或者當我要演示隊列中正在發生的事情時。
對我來說,INFO日誌由標準的lib = queue_classic level = info action = insert_job elapsed = 16消息和分叉執行或PostgreSQL中的任何STDOUT/STDERR組成。我沒有擴展任何日誌類,因爲滾動進入STDOUT,我的任務位於提供日誌記錄的環境中。
當然,它可以被刪除。我認爲真的取決於環境和隊列正在做什麼。如果我要做的事情沒有Rails.logger,那麼我會使用QC.log並更有效地滾動,並以這種方式來測試我的任務。
當我玩它的時候,我可能會保留我的配置,只是因爲輸出來自任務本身調用的方法/應用程序。我可能會決定重寫QC.log代碼以添加日期/時間。我仍在努力確定什麼符合我的需求。
對不起,我最後一行真的關注於我給出的環境示例。
你也可以問你的問題Queue_Classic GitHub上的寶石autors如果谷歌無法找到答案。 – bmalets