在Java企业级开发中都需要日志记录相关的操作。
Maven相关配置如下,首先要去除Spring Boot自带的日志,然后添加log4j2的日志:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</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>
</dependency>
Gradle依赖:
dependencies {
compile 'org.springframework.boot:spring-boot-starter-log4j2'
}
configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}
Spring Boot中关于Log4J2在4个地址配置能生效:
1. XML配置(默认采用的配置)
2. JSON
3. YAML
4. Properties文件
只要这4个文件在环境变量里面,程序都会读其进行读取对应的文件分别是:
log4j2.xml
log4j2.json
log4j2.properties
log4j2.yaml
在项目的资源文件中添加log4j2.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="PID">????</Property>
<Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.javadevjournal" level="debug" additivity="false">
<AppenderRef ref="Console" />
</Logger>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
这样Log4j2就配置好了。
测试的时候,简单写一个restful接口:
Log4J2Controller.java
@RestController
public class Log4J2Controller {
private static final Logger LOG = LogManager.getLogger(Log4J2Controller.class);
@GetMapping("/test")
public String test(){
LOG.debug("Debugging Debugging Debugging Debugging");
LOG.info("Info Info Info Info Info Info Info Info");
LOG.warn("Warn Warn Warn Warn Warn Warn Warn Warn");
LOG.error("Error Error Error Error Error Error Error");
LOG.fatal("Fatal Fatal Fatal Fatal Fatal Fatal Fatal");
return "Hello Test";
}
}
打印如下:
源码打包下载: