1. pom.xml引入依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 這里需要排除spring自帶的日志,否則會(huì)有沖突 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.0</version>
</dependency>
<!-- 這里引入了slf4j的實(shí)現(xiàn)揖赴,否則會(huì)提示SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
2. java程序調(diào)用
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class HelloWorld {
//官方建議使用靜態(tài)成員變量來獲取logger實(shí)例
private static final Logger logger = LogManager.getLogger("HelloWorld");
public static void main(String[] args) {
logger.info("Hello, World!");
}
}
3. 配置文件log4j2.xml
如果不提供配置文件,spring boot會(huì)使用內(nèi)置的配置文件
3.1 配置spring boot的log配置路徑
src/main/resources/application.yml
logging:
config: classpath:log4j2.xml //表示讀取放在resources根目錄的名稱log4j2.xml的文件
3.2 配置log4j2.xml文件
src/main/resources/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<!-- 定義命令行輸出格式 -->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<!-- 定義日志文件格式和儲(chǔ)存位置 -->
<RollingFile name="FileLogger"
fileName="logs/app.log"
filePattern="logs/app-%d{yyyy-MM-dd}.log"
append="true">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<!-- 可以設(shè)置文件分片策略(時(shí)間憔儿,大蟹娇狻) -->
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<!-- 設(shè)置日志啟動(dòng)的等級(jí),并綁定對(duì)應(yīng)的日志配置 -->
<Root level="ERROR">
<AppenderRef ref="Console"/>
<AppenderRef ref="FileLogger"/>
</Root>
</Loggers>
</Configuration>