为了便于使用,留存一份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>