这里只说明一下log4j2的简单配置和应用,类似“hello world”范例。
首先,需要在pom.xml中配置log4j2的依赖dependency:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.1</version> </dependency>
log4j2和之前的的1.x版本有一个明显的不同,其配置文件只能采用.xml, .json或者 .jsn。而1.x版本很多都是用properties文件的,所以这里需要注意下。
下面是一个完整的xml格式的配置文件,定义了appenders,loggers,以及输出的pattern。更多配置项请查看官网。xml文件命名为log4j2.xml,放置在项目目录下:
src/main/resources/log4j2.xml 或者是
src/test/resources/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 设置log4j2的自身log级别为warn --> <!-- OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <configuration status="WARN" monitorInterval="30"> <appenders> <console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> </console> <File name="LogFile" fileName="src/test/resources/log.txt"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> </File> </appenders> <Loggers> <Logger name="fileLog" level="info" additivity="true"> <AppenderRef ref="LogFile" /> </Logger> <Root level="info"> <AppenderRef ref="Console" /> </Root> </Loggers> </configuration>
在需要日志输入的java类文件中,声明Logger对象,注意import的是
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
千万别import成java util类库的logger
java.util.logging.Logger
声明并使用:
public static final Logger logger = LogManager.getLogger(XXX.class); logger.info("this is a log");