我们正在使用%replace
Logback 的功能来掩盖我们日志文件中的密码和安全令牌等安全敏感信息。
但是,只有 10% 的针对特定 appender 的日志语句需要屏蔽。对于剩下的 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,没有自定义代码)
- 有关该选项的文档和 StackOverflow 问题
prudent
强调了它在多个 JVM 设置中的用途。在我们的例子中,所有的日志输出都来自单个 JVM。是否仍然需要启用此选项?或者 Logback 是否足够聪明,可以同步 2 个本地附加程序输出到同一个文件? - 是否有针对此的 OOTB 过滤器?我只找到了 MarkerFilter,但它是一个
TurboFilter
. - 现在是否支持 OOTB 条件替换(如本答案中所建议的那样)?
环境: Apache ServiceMix 上的 OSGi,带有 Pax Logging 1.7.0。