gpt4 book ai didi

ruby-on-rails - 从 ActionMailer 日志中过滤掉电子邮件地址

转载 作者:行者123 更新时间:2023-12-04 12:54:57 24 4
gpt4 key购买 nike

在 Rails 中通过 Actionmailer 发送电子邮件时,它会记录如下内容:

Sent mail to example@example.com (72ms)
Rendered mailer/_header.html.erb (0.0ms)
...

我想从日志 ala 参数过滤中过滤电子邮件
Sent mail to [FILTERED] (72ms)
Rendered mailer/_header.html.erb (0.0ms)
...

有没有干净的方法来做到这一点?或者,不记录整个第一行也可以。

最佳答案

在 Rails 源代码中 ./actionmailer/lib/action_mailer/log_subscriber.rb :

module ActionMailer
class LogSubscriber < ActiveSupport::LogSubscriber
def deliver(event)
return unless logger.info?
recipients = Array(event.payload[:to]).join(', ')
info("\nSent mail to #{recipients} (#{event.duration.round(1)}ms)")
debug(event.payload[:mail])
end

def receive(event)
return unless logger.info?
info("\nReceived mail (#{event.duration.round(1)}ms)")
debug(event.payload[:mail])
end

def logger
ActionMailer::Base.logger
end
end
end

Rails 没有提供过滤电子邮件的方法,因此您可以:
  • fork rails,删除此信息,并使用您的 fork 版本的 rails。
  • 编辑此代码,添加一些过滤器,并发出拉取请求。
  • 关于ruby-on-rails - 从 ActionMailer 日志中过滤掉电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16270713/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com