最近在寫activejob時,發現log裡會用info level記錄傳到queue backend的參數
如果傳很大的東西或是暫存的密碼等,會造成log混亂和資安問題
解決辦法就是在config/initializers/新增一個檔案來覆蓋那個method
使用ActiveSupport.on_load去hook的原因是logger會lazyload
如果沒有這樣做直接等after_initialize就上,會造成enqueue時無法覆蓋的問題
# /config/initializers/override_activejob_logsubscriber.rb
ActiveSupport.on_load :active_job do
class ActiveJob::Logging::LogSubscriber
private def args_info(job)
# override this method to filter arguments shown in app log
end
end
end
留言