最近在回顾一些spring的相关知识,并学习了使用slf4j+logback的日志框架来记录日志。特此记录本博文,以便不时之需。
首先在导入相关依赖,由于项目是采用maven构建的因此在pom.xml中添加如下代码:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
然后配置logback.xml,对日志记录进行相关设置:
<?xml version="1.0" encoding="utf-8"?>
<configuration scan="true" scanPeriod="1 seconds" debug="true">
<timestamp key="byDay" datePattern="yyyy-MM-dd"/>
<timestamp key="byHour" datePattern="yyyyMMdd_HH"/>
<timestamp key="byMinute" datePattern="yyyyMMdd'T'HH:mm"/>
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>
<property name="pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} [%file:%line] - %msg%n"/>
<property name="charsetEncoding" value="UTF-8"/>
<!--控制台日志-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${pattern}</pattern>
<charset>${charsetEncoding}</charset>
</encoder>
</appender>
<!--滚动文件日志-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logback/mylog.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logback/mylog.%d{yyyy-MM-dd_HH}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
</encoder>
</appender>
<!--设置多个级别的日志-->
<root level="debug">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</configuration>
其中各个属性含义可根据注释理解,更多相关属性参考官方文档。