我们正在使用Logback的%replace
功能来屏蔽日志文件中的安全敏感信息,例如密码和安全令牌。
但是,只有10%的针对特定appender的日志语句需要屏蔽。对于剩余的90%,运行替换正则表达式是一个多余的开销。
我们考虑过使用SEC_SENSITIVE
等标记来标记敏感语句,并使用过滤器来限制运行哪些appender。这需要为单个记录器设置2个互斥的appender。
Logger
|---- Appender 1 (only if marker != SEC_SENSITIVE, no replacement)
|---- Appender 2 (only if marker == SEC_SENSITIVE, with replacement)
两个appender都写入同一个文件。
到此为止,我有几个问题:
prudent
选项的文档和StackOverflow问题强调了它对多个JVM设置的使用。在我们的示例中,所有日志记录输出都将来自单个JVM。是否仍然需要启用此选项?或者Logback是否足够聪明地将2个本地appenders 输出到同一个文件?TurboFilter
。环境:使用Pax Logging 1.7.0的Apache ServiceMix上的OSGi。
答案 0 :(得分:0)
是的,它会起作用。不要忘记additivity = false。
或者,在根目录停止问题并且在对象的toString中编辑任何敏感字段会不会更容易?
有时敏感案例不容易被发现,例如令牌或SAML主题,这些也应该从日志中删除。