為了便於使用,留存一份logback的配置文件。
首先,需要在resources下創建logback文件夾,並存放以下三個文件,這是我的個人習慣,也可以都寫在logback.xml中
- logback.properties,用於定義變量
- appender.xml,用於定義Appender對象
- logger.xml,用於定義logger。
創建logback.xml,引入其他三個文件。具體的配置如下:
1、logback.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 配置debug屬性,開啟日志框架的調試模式 --> <configuration debug="true"> <!-- 定義contextName,項目名 --> <contextName>logback_study</contextName> <!-- 引入properties文件,定義變量 --> <property resource="logback/logback.properties" /> <!-- 引入Appender,必須在logger之前 --> <include resource="logback/appender.xml" /> <!-- 引入logger --> <include resource="logback/logger.xml" /> <!-- 定義root logger --> <root level="info"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> </configuration>
2、Logback.properties
# 定義日志存放的目錄 # 項目名稱 app_name=logbackStudy # 日志存放的根路徑 file_root_dir=D:\\ # 當前項目日志存放的根路徑 file_root_app_dir=${file_root_dir}\\${app_name} # 歷史日志文件存放的根路徑 file_root_app_history_dir=${file_root_dir}\\${app_name}\\history # 日志格式 # 默認的日志格式 default_pattern=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} %n # console的日志格式 console_pattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %logger %n[%thread] %7level: %message %n # fileAppender的日志格式 file_pattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %logger %n[%thread] %7level: %message %n
3、Appender.xml
<included> <!-- 定義輸出控制台 ConsoleAppender --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- 包含1個encoder --> <encoder> <pattern>${console_pattern}</pattern> </encoder> <!-- 包含1個target,System.out 或者是System.err,默認為System.out --> <target>System.out</target> <!-- 包含1個 withJansi, 是否對不同級別的日志用顏色來區分 --> <withJansi>false</withJansi> </appender> <!-- 定義RollingFileAppender --> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 設置日志文件的名稱 --> <file>${file_root_app_dir}/${app_name}_log.txt</file> <!-- 設置是否追加在日志文件,該值默認為true --> <append>true</append> <!-- 設置immediateFlush --> <immediateFlush>true</immediateFlush> <!-- 設置rollingPolicy --> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 指定fileNamePattern,定義日志文件或者是壓縮包存放的位置,如果存在file屬性,日志輸出到file文件中,fileNamePattern存放日志壓縮文件的路徑 --> <fileNamePattern>${file_root_app_history_dir}/%d{yyyy/MM,aux}/%d{yyyy-MM-dd}_log%i.zip</fileNamePattern> <!-- 每個文件的大小 --> <maxFileSize>5MB</maxFileSize> <!-- 指定最大的歷史,365天,對應fileNamePattern中的日期格式 --> <maxHistory>365</maxHistory> <!-- 日志文件的總大小,20GB --> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <!-- 設置一個或者多個encoder --> <encoder> <pattern>${file_pattern}</pattern> </encoder> </appender> </included>
4、Logger.xml
<included> <!-- 定義logger --> <logger name="com.rain.test" level="debug" additivity="false"> <appender-ref ref="console" /> <appender-ref ref="file" /> </logger> </included>