Slf4j+Log4j简单使用
文章目录
- Slf4j+Log4j简单使用
- 一、引入依赖
- 二、配置 log4j2.xml
- 2.1 配置结构
- 2.2 配置文件
- 三、使用
- 四、使用MDC完成日志ID
- 4.1 程序入口处
- 4.2 配置文件配置打印
- 4.3 多线程日志ID传递配置
- 五. 官网
一、引入依赖
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.23.1</version>
</dependency>
</dependencies>
二、配置 log4j2.xml
2.1 配置结构
2.2 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config" status="TRACE" monitorInterval="30">
<Properties>
<Property name="PROJECT_NAME">log4j2-example</Property>
<Property name="LOG_PATH">./data/logs</Property>
<Property name="pattern">[%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c{1.}::%M] [%t] [%p]: %m%n</Property>
</Properties>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="${pattern}"/>
</Console>
<RollingFile name="RollingFile" fileName="${LOG_PATH}/${PROJECT_NAME}.log"
filePattern="${LOG_PATH}/${date:yyyy-MM-dd}/${PROJECT_NAME}-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="${pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
三、使用
package com.chenjiacheng.log.log4j2.log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by chenjiacheng on 2024/4/11 22:59
*
* @author chenjiacheng
* @since 1.0.0
*/
public class Log4j2Example {
private static final Logger log = LoggerFactory.getLogger(Log4j2Example.class);
public static void main(String[] args) {
log.trace("hello,world");
log.debug("hello,world");
log.info("hello,world");
log.warn("hello,world");
log.error("hello,world");
}
}
四、使用MDC完成日志ID
4.1 程序入口处
MDC.put("logId", UUID.randomUUID().toString());
4.2 配置文件配置打印
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss,SSS}] [%c{1.}::%M] [%t] [%p] [%X{logId}]: %m%n"/>
%x{key}
: 用于打印MDC内指定Key的值。
4.3 多线程日志ID传递配置
添加配置: resources/log4j2.component.properties
isThreadContextMapInheritable=true
五. 官网
Slf4j: Slf4j
Log4j2: Log4j2