添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

问题现象:

为了控制输出的日志级别,加上了log4j2.xml配置。但无论如何调整level,输出级别都不生效。据我所知,需要配置的只有一个log4j2.xml才对啊……

log4j.xml已经在classpath中,请问还有什么要注意的?

Hello.java

import org.apache.log4j.LogManager; import org.apache.log4j.Logger; public class Hello { private static final Logger logger = LogManager.getLogger(Hello.class); public static void main(String[] args) throws IOException { logger.info("info"); logger.trace("trace"); logger.error("error");

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH🇲🇲ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

pom.xml

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.4.RELEASE</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.10.2</version>
		</dependency>
		<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>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

受楼上回答启发,想到应该是Spring Boot的问题。问题出在pom.xml配置,配置代码在最后。

楼上的写法和官方文档给出的例子相似,但我根据官方文档试了下,却不行。原因是我使用的是Spring Boot1.5.4,使用log4j2版本2.7,但我的logger的具体写法参照log4j2的官方文档,也就是 2.8.2。

又因为找不到2.7的文档,所以只好覆盖掉官方的版本。并且我发现,不需要exclusion排除logback也是可以的。以下是配置:

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.8.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.8.2</version>
		</dependency>
评论 ( 2 )