【发布时间】:2013-08-04 16:30:25
【问题描述】:
我们正在使用 Logback 的%replace 功能来掩盖我们日志文件中的密码和安全令牌等安全敏感信息。
但是,只有 10% 的针对特定附加程序的日志语句需要屏蔽。对于剩下的 90%,运行替换正则表达式是多余的开销。
我们曾考虑使用诸如SEC_SENSITIVE 之类的标记来标记敏感语句,并使用过滤器来限制运行哪些附加程序。这需要为单个记录器设置 2 个互斥的附加程序。
Logger
|---- Appender 1 (only if marker != SEC_SENSITIVE, no replacement)
|---- Appender 2 (only if marker == SEC_SENSITIVE, with replacement)
两个 appender 都写入同一个文件。
说到这里,我有几个问题:
- 这种设置有意义吗?或者有没有更简单的方法? (理想情况下是 OOTB,没有自定义代码)
- 有关
prudent选项的文档和 StackOverflow 问题强调了它在多个 JVM 设置中的用途。在我们的例子中,所有的日志输出都来自单个 JVM。是否仍然需要启用此选项?或者 Logback 是否足够聪明,可以同步 2 个本地附加程序输出到同一个文件? - 是否有针对此的 OOTB 过滤器?我只找到了MarkerFilter,但它是
TurboFilter。 - 现在是否支持条件替换 OOTB(建议 in this answer)?
环境: Apache ServiceMix 上的 OSGi 和 Pax Logging 1.7.0。
【问题讨论】:
标签: java logging log4j logback