在我们的应用中的一些异常消息包含证书/私钥或其他敏感信息不应该使其进入错误日志。我想在写入之前过滤日志消息的内容,以便已知的敏感值和/或模式可以用[redacted]或某些此类文本值替换。一些搜索没有发现任何东西。有没有办法做到这一点,并以通用的方式将其应用于所有配置的appender?如何编辑来自log4net的敏感信息?
我不希望有通过了解可能发生的所有这些异常,写异常处理程序用于此目的进行过滤。异常不会被我们的代码抛出,所以“不这样做”不是一种选择。
在我们的应用中的一些异常消息包含证书/私钥或其他敏感信息不应该使其进入错误日志。我想在写入之前过滤日志消息的内容,以便已知的敏感值和/或模式可以用[redacted]或某些此类文本值替换。一些搜索没有发现任何东西。有没有办法做到这一点,并以通用的方式将其应用于所有配置的appender?如何编辑来自log4net的敏感信息?
我不希望有通过了解可能发生的所有这些异常,写异常处理程序用于此目的进行过滤。异常不会被我们的代码抛出,所以“不这样做”不是一种选择。
很简单:不要把它们放在那里摆在首位。
当然,你可以做一些正则表达式和启发式等,并定期对您的日志运行它们 - 所有这些会容易出现故障或破坏。
,也没有任何理由在日志中的密码和私钥
我希望(但还没有尝试过),你可以写一个基于该sample here一个BufferingAppender
和可使用的方法override protected void Append(LoggingEvent loggingEvent)
到更改logingEvent以删除敏感信息。
谢谢,将考虑到这一点。我希望有一些可以统一应用于多个现有的appender,但我失去了希望。 – jlew 2013-02-13 13:31:26
你有没有考虑写一个自定义log4net的过滤器?也许它基于StringMatchFilter?我不确定过滤器是否可以更改输出,但您至少可以使用它来过滤日志中的条目。 – sisve 2013-02-12 20:52:25
我觉得过滤器是用来包含/排除整个事件,而不是过滤内容。在那里也有有用的信息,我只想扼杀顽皮的位 – jlew 2013-02-12 21:05:20