前言
做了很多項目,日誌配置是每個項目都會用到的,這裏積累一下用到過的Logback的配置及使用方式。
正文
依賴
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
配置
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<!-- 定義日誌文件 輸出位置 -->
<property name="log.home_dir" value="/opt"/>
<!-- 日誌最大的歷史 10天 -->
<property name="log.maxHistory" value="10"/>
<property name="log.level" value="INFO"/>
<!-- INFO級別日誌 appender -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.home_dir}/logs/xxx-yyy-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>${log.maxHistory}</maxHistory>
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>2MB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="INFO"/>
</root>
</configuration>
這裏是按照時間策略配置,設置了文件最大size以及基於時間的最長保留日誌數,xxx-yyy換成自己的日誌文件名字即可。