禁用登录到我的application.log中的依赖服务日志



我的项目中有一个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"/>

最新更新