在将消息发送到后端之前,有没有办法挂钩Elixir Logger?我需要在将敏感信息写入外部系统之前删除它们。
答案 0 :(得分:2)
只是为了可能遇到这个问题并且没有注意到我发布的评论的其他人,我相信你可以通过Logger.Translator模块完成你想要实现的目标。您将构建一个模块和函数,以便对要过滤的敏感数据进行模式匹配,然后通过Logger.add_translator/1函数添加模块和函数。
编辑:回答原始问题的海报留下的评论:我建议您查看here并特别注意这两个选项::handle_otp_reports
和:handle_sasl_reports
。我还要提请你注意文档中的这段话:
此外,Logger允许Erlang的error_logger发送的消息 通过译者翻译成Elixir格式。
假设您正在通过Erlang的error_logger输出要过滤的消息,这是正确的方法。如果您没有通过error_logger输出这些消息,请添加有关您用于输出要删除的邮件的机制的更多详细信息。