当logback读取其配置时,它会为每个日志级别设置输出消息:
11:36:36,467 INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.apache.zookeeper.ClientCnxn] to ERROR
11:36:36,467 INFO in ch.qos.logback.classic.jul.LevelChangePropagator@2f465398 - Propagating ERROR level on Logger[org.apache.zookeeper.ClientCnxn] onto the JUL framework
11:36:36,467 INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [com.redacted.config] to WARN
11:36:36,467 INFO in ch.qos.logback.classic.jul.LevelChangePropagator@2f465398 - Propagating WARN level on Logger[com.redacted.config] onto the JUL framework
不幸的是,我们的(有点粗糙的)警报系统会拾取这些错误和警告。 (我们无法安全地收紧它,因为我们可能会错过日志模式配置不正确的进程的问题)
有没有办法抑制这些级别变化消息?
将 ch.qos.logback.classic.joran.action.LoggerAction 和 ch.qos.logback.classic.jul.LevelChangePropagator 的日志级别设置为 OFF 或 ERROR 似乎没有效果。
我们使用logback-classic以及jul-to-slf4j,log4j-over-slf4j和jcl-over-slf4j,并使SLF4JBridgeHandler能够从我们使用的各种不同的第三方库中获取日志记录。
也许您在 logback.xml 文件 (<configuration debug=“true”>…</configuration>
) 中启用了调试?或者,更有可能的是,类路径上有多个配置。进一步查看控制台输出,您是否看到如下所示的内容:
资源 [...] 在类路径上多次出现
如果是这样,则删除"额外"logback.xml logback-test.xml文件将导致logback不会发出这些不需要的日志事件。
FWIW,将ch.qos.logback.classic.joran.action.LoggerAction and ch.qos.logback.classic.jul.LevelChangePropagator
的日志级别设置为 OFF 或 ERROR 将不起作用,因为这些日志事件来自 logback 的内部日志记录,该日志记录不受您的 logback 配置控制。
就我而言,pod 中有一个设置覆盖了 yaml 文件中的配置。其他人正在打包该应用程序,所以我没有意识到他们已经添加了该设置。
也许有人设置了您不知道的环境变量?