Rails ActiveJob filter arguments

最近在寫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

留言

粗體斜體刪除線連結引用圖片程式碼

注意:您的電子信箱將不會被公開,且網站連結不會被搜尋引擎採計