2012-01-31 47 views
19

當我發送帶附件的電子郵件時,數據以十六進制記錄並填寫完整日誌。有沒有辦法禁用附件的日誌記錄?我知道我可以用config.action_mailer.logger = nil禁用郵件程序日誌記錄。阻止Rails記錄電子郵件附件

回答

0

in Application.rb你可以嘗試過濾附件參數。我相信這應該解決這個問題,但我還沒有測試它自己

config.filter_parameters += [:attachment] 
+1

'filter_parameters'是關於過濾參數**發送到**你的網站,不是? – m33lky 2012-02-19 19:53:38

+0

我的理解是,一直以來,filter_parameters會停止將參數打印到日誌中,這樣您就不會意外地將日誌文件的信用卡號或密碼打印到 – 2012-02-19 21:22:50

+1

正確。但是,如果我_rendering_郵件視圖,我不認爲它會顯示爲GET或POST參數,因爲這是朝另一個方向。 – m33lky 2012-02-19 21:55:35

11

遺憾的是,附件包含在日誌中如果日誌記錄級別設置爲:debug,用於非生產環境中的默認級別。這意味着在生產中你應該沒問題,但是在測試過程中你的開發環境和臨時環境可能會膨脹。您可以關閉整個應用程序的日誌記錄(config.log_level = :info),但這顯然不太理想。

您可以配置自定義日誌記錄器:

config.action_mailer.logger = ActiveSupport::BufferedLogger.new("mailer.log") 
config.action_mailer.logger.level = ActiveSupport::BufferedLogger::Severity::INFO 

這將分裂的日誌,但您可以隔離日誌記錄級別變化的行動郵件。

+6

在Rails 4中,您應該使用'ActiveSupport :: Logger',因爲'ActiveSupport :: BufferedLogger'已被折舊([source](http://edgeguides.rubyonrails.org/4_0_release_notes.html#active-support-deprecations)) 。 – 2013-08-03 16:56:39