在本例中,我使用了oshi sysinfo库和spring boot。
我尝试在com.github.oshi记录器设置为INFO的情况下使用log4j2.xml文件,但它不能关闭以下DEBUG-level消息。
...
04:33:57.687 [Thread-3] DEBUG oshi.util.FileUtil - Reading file /sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq
04:33:57.687 [Thread-3] DEBUG oshi.util.FileUtil - Reading file /sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq
/sys/devices/system/cpu/cpu13/cpufreq/scaling_cur_freq
04:33:57.707 [Thread-3] DEBUG oshi.util.FileUtil - Reading file
...log4j2.xml中的以下设置不起作用:
<category name="oshi">
<priority value="OFF"/>
</category>
<Loggers>
<!-- avoid duplicated logs with additivity=false -->
<Logger name="oshi" level="info" additivity="false">
<AppenderRef ref="LogToRollingFile"/>
</Logger>
<Root level="info">
<AppenderRef ref="LogToConsole"/>
</Root>
</Loggers>pom.xml包含:
...
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
...发布于 2021-09-01 20:40:44
这是一个愚蠢的问题。
我确实设置了log4j2.xml配置,但这是无效的,因为我包含了一个包含logback的spring starter。所以slf4j-over-logback配置生效了。Oshi库使用slf4j。
因此,我排除了spring-boot- starter -logging jar,并包含了spring log4j2 starter,如下所示,问题就解决了:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>2.5.4</version>
</dependency>log4j2配置现在通过slf4j-log4j桥jars生效。
https://stackoverflow.com/questions/69006728
复制相似问题