我的项目中有一个log4j2设置
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="ERROR">
<Properties>
<Property name="log-path">${sys:root}/logs</Property>
</Properties>
<Appenders>
<RollingRandomAccessFile name="APPLICATION" filePattern="${log-path}/application.log.%d{yyyy-MM-dd-HH}" >
<PatternLayout>
<pattern>%d{dd MMM yyyy HH:mm:ss,SSS} %highlight{[%p]} %X{RequestId} (%t) %c: %m%n</pattern>
</PatternLayout>
</RollingRandomAccessFile>
<RollingRandomAccessFile name="REQUESTLOG" filePattern="${log-path}/access.log.%d{yyyy-MM-dd-HH}" >
<PatternLayout>
<pattern>%m%n</pattern>
</PatternLayout>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="APPLICATION"/>
</Root>
<Logger name="AccessLogger" level="INFO" additivity="false">
<AppenderRef ref="REQUESTLOG"/>
</Logger>
<!-- Suppressing excessive logs from dependency packages -->
<Logger name="com.dependency1" level="OFF"/>
<Logger name="com.component" level="OFF"/>
</Loggers>
</Configuration>
MyProject
呼叫dependecy-1
,此呼叫dependency-2
我的dependency-2
是这样做的
for (int i = 0; i < records; i++) {
Thread t = new Thread(r);
t.setDaemon(true);
t.setName("componentRecorder-" + t.getName());
t.start();
在我的应用程序日志中,我看到的是这个线程发布的东西
(componentRecorder-Thread-21) componentLogger:
A21TJRUUN4KGV 01016862e1798c145f8a127b53634d3ea788392b8123c4b7f5fd04369e3ebc8c7c75 01015c1148bd32f255852a618717bd606e93b5bd4a172fde2b1995de7babe6b2c6fe 010140600f6b1f1dd9327f1bf19b23c4c2e39efa4077338ca32deca1fbd41c6d4a66
基于此(componentRecorder-Thread-21)
componentLogger:
我假设上面的代码记录了这一点。
我如何阻止这个日志进入我的应用程序日志。因为这些日志没有类/包名与之关联,我不确定如何抑制这个
我想抑制componentRecorder
的所有日志我的依赖项2使用slf4j进行日志记录
噪声记录器的名称包含在消息中:componentLogger
。您可以禁用它,就像使用其他记录器一样:
<Logger name="componentLogger" level="OFF"/>