2012-01-31 3 views
19

Когда я отправляю электронное письмо со вложением, данные записываются в шестнадцатеричном виде и заполняют мой весь журнал. Есть ли способ отключить ведение журнала вложений? Я знаю, что я могу отключить ведение журнала почты с помощью config.action_mailer.logger = nil.предотвратить Rails из регистрации вложений электронной почты

ответ

0

в Application.rb Вы можете попробовать фильтровать параметр вложения. Я считаю, что это должно решить проблему, но я не проверял это сам

config.filter_parameters += [:attachment] 
+1

'filter_parameters' посвящен параметрам фильтрации, которые отправляются ** на ** ваш сайт, нет? – m33lky

+0

Мое понимание всегда и всегда заключалось в том, что filter_parameters останавливает этот параметр для печати в журнале, таким образом вы никогда случайно не печатаете номер кредитной карты или пароль в файл журнала. –

+1

Исправить. Но если я просматриваю почтовый ящик, я не думаю, что он будет отображаться как параметр GET или POST, потому что это происходит в другом направлении. – m33lky

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 »был обесценен ([источник] (http://edgeguides.rubyonrails.org/4_0_release_notes.html#active-support-deprecations)) , –

Смежные вопросы