发布于 5年前
slf4j集成log4j2处理日志
slf4j统一了日志的接口,通过桥接的方式,它可以集成不同的日志实现框架,如log4j,log4j2,common logging等。
这里记录下slf4j集成log4j2的maven依赖配置以及log4j2的简单配置示例。
maven添加slf4j以及log4j2相关依赖
<!-- 首先引入slf4j的核心包 --><br></br><dependency><br></br> <groupId>org.slf4j</groupId><br></br> <artifactId>slf4j-api</artifactId><br></br> <version>1.7.25</version><br></br></dependency><br></br><!-- 2.然后引入slf4j对应log4j2的中间件 --><br></br><dependency><br></br> <groupId>org.apache.logging.log4j</groupId><br></br> <artifactId>log4j-slf4j-impl</artifactId><br></br> <version>2.10.0</version><br></br></dependency><br></br><!-- 3.其次就需要引入log4j2包 --><br></br><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><br></br><dependency><br></br> <groupId>org.apache.logging.log4j</groupId><br></br> <artifactId>log4j-core</artifactId><br></br> <version>2.10.0</version><br></br></dependency><br></br>
引入这三个jar包就可以了,其中:
- slf4j-api:定义了slf4j统一的日志接口
- log4j-slf4j-impl:slf4j桥接log4j的实现
- log4j-core:log4j的核心jar包
log4j2的配置
完成了依赖的引入后,添加一个log4j2.xml作为日志的配置就可以了。log4j2.xml示例如下:
<?xml version="1.0" encoding="utf-8" ?><br></br><configuration status="OFF"><br></br> <appenders><br></br> <!--输出到控制台--><br></br> <Console name="Console" target="SYSTEM_OUT"><br></br> <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%logger{36}:%L] %-5level - %msg%n"/><br></br> <!--<ThreSholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>--><br></br> </Console><br></br> <!--输出到日志文件中--><br></br> <RollingFile name="InfoLog" fileName="/home/pigpigautumn/CODE/infoLog.log"<br></br> filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"><br></br> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><br></br> <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%logger{36}:%L] %-5level - %msg%n"/><br></br> <Policies><br></br> <SizeBasedTriggeringPolicy size="50MB"/><br></br> </Policies><br></br> </RollingFile><br></br> <!--输出到错误日志文件中--><br></br> <!--<RollingFile name="ErrorLog" fileName="/home/pigpigautumn/CODE/errorLog.log"--><br></br> <!--filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">--><br></br> <!--<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>--><br></br> <!--<PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%logger{36}:%L] %-5level - %msg%n"/>--><br></br> <!--<Policies>--><br></br> <!--<SizeBasedTriggeringPolicy size="50MB"/>--><br></br> <!--</Policies>--><br></br> <!--</RollingFile>--><br></br> </appenders><br></br> <loggers><br></br> <!--使appender生效--><br></br> <root level="info"><br></br> <appender-ref ref="Console"/><br></br> <!--<appender-ref ref="InfoLog"/>--><br></br> <!--<appender-ref ref="ErrorLog"/>--><br></br> </root><br></br> </loggers><br></br></configuration>
简单说明:
- fileName: 输出的日志文件的文件名
- fileParten: 新建的日志文件的命名格式
- ThresholdFilter: 只有输出级别大于给定的级别的日志信息才会输出到文件中
- PartenLayout: 日志信息的格式
将appender添加loggers的root节点中就会生效了