防止Rails记录电子邮件附件

m33*_*lky 24 logging ruby-on-rails actionmailer

当我发送带附件的电子邮件时,数据以十六进制记录并填满我的整个日志.有没有办法禁用附件记录?我知道我可以禁用邮件日志记录config.action_mailer.logger = nil.

Mik*_*keG 16

遗憾的是,如果日志记录级别设置:debug为非生产环境的默认级别,则附件将包含在日志中.这意味着在生产中你应该没问题,但是你的开发和临时环境在测试期间可能会膨胀.您可以拒绝整个应用程序的记录(config.log_level = :info),但这显然不太理想.

您可以配置自定义记录器:

config.action_mailer.logger = ActiveSupport::BufferedLogger.new("mailer.log")
config.action_mailer.logger.level = ActiveSupport::BufferedLogger::Severity::INFO
Run Code Online (Sandbox Code Playgroud)

Rails 4

config.action_mailer.logger = ActiveSupport::Logger.new("mailer.log")
config.action_mailer.logger.level = ActiveSupport::Logger::Severity::INFO
Run Code Online (Sandbox Code Playgroud)

这将拆分日志,但您可以将日志记录级别更改隔离到操作邮件程序.

  • 在Rails 4中,你应该使用`ActiveSupport :: Logger`,因为`ActiveSupport :: BufferedLogger`已被折旧([source](http://edgeguides.rubyonrails.org/4_0_release_notes.html#active-support-deprecations)). (7认同)

Jus*_*ick 0

您可以尝试Application.rb过滤附件参数。我相信这应该可以解决问题,但我自己没有测试过

config.filter_parameters += [:attachment]  
Run Code Online (Sandbox Code Playgroud)