123 lines
8.4 KiB
XML
123 lines
8.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<configuration debug="false">
|
||
|
||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||
<encoder>
|
||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%15.15(%thread)] %-40.40(%logger{40}) : %msg%n</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!-- info 日志-->
|
||
<!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
|
||
<!-- 以下的大概意思是:1.先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX%日期%索引,新的日志仍然是project_info.log -->
|
||
<!-- 2.如果日期没有发生变化,但是当前日志的文件大小超过10MB时,对当前日志进行分割 重命名-->
|
||
<appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<!--日志文件路径和名称-->
|
||
<File>logs/project_info.log</File>
|
||
<!--是否追加到文件末尾,默认为true-->
|
||
<append>true</append>
|
||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||
<level>ERROR</level>
|
||
<onMatch>DENY</onMatch><!-- 如果命中ERROR就禁止这条日志 -->
|
||
<onMismatch>ACCEPT</onMismatch><!-- 如果没有命中就使用这条规则 -->
|
||
</filter>
|
||
<!--有两个与RollingFileAppender交互的重要子组件。 第一个RollingFileAppender子组件,即RollingPolicy:负责执行翻转所需的操作。
|
||
RollingFileAppender的第二个子组件,即TriggeringPolicy:将确定是否以及何时发生翻转。 因此,RollingPolicy负责什么和TriggeringPolicy负责什么时候.
|
||
作为任何用途,RollingFileAppender必须同时设置RollingPolicy和TriggeringPolicy,但是,如果其RollingPolicy也实现了TriggeringPolicy接口,则只需要显式指定前者。-->
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<!-- 日志文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
|
||
<!-- 文件名:logs/project_info.2017-12-05.0.log -->
|
||
<!-- 注意:SizeAndTimeBasedRollingPolicy中 %i和%d令牌都是强制性的,必须存在,要不会报错 -->
|
||
<fileNamePattern>logs/project_info.%d.%i.log</fileNamePattern>
|
||
<!-- 每产生一个日志文件,该日志文件的保存期限为30天, ps:maxHistory的单位是根据fileNamePattern中的翻转策略自动推算出来的,例如上面选用了yyyy-MM-dd,则单位为天
|
||
如果上面选用了yyyy-MM,则单位为月,另外上面的单位默认为yyyy-MM-dd-->
|
||
<maxHistory>30</maxHistory>
|
||
<!-- 每个日志文件到10mb的时候开始切分,最多保留30天,但最大到20GB,哪怕没到30天也要删除多余的日志 -->
|
||
<totalSizeCap>20GB</totalSizeCap>
|
||
<!-- maxFileSize:这是活动文件的大小,默认值是10MB,测试时可改成5KB看效果 -->
|
||
<maxFileSize>10MB</maxFileSize>
|
||
</rollingPolicy>
|
||
<!--编码器-->
|
||
<encoder>
|
||
<!-- pattern节点,用来设置日志的输入格式 ps:日志文件中没有设置颜色,否则颜色部分会有ESC[0:39em等乱码-->
|
||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%15.15(%thread)] %-40.40(%logger{40}) : %msg%n</pattern>
|
||
<!-- 记录日志的编码:此处设置字符集 - -->
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<!-- error 日志-->
|
||
<!-- RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
|
||
<!-- 以下的大概意思是:1.先按日期存日志,日期变了,将前一天的日志文件名重命名为XXX%日期%索引,新的日志仍然是project_error.log -->
|
||
<!-- 2.如果日期没有发生变化,但是当前日志的文件大小超过10MB时,对当前日志进行分割 重命名-->
|
||
<appender name="error_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<!--日志文件路径和名称-->
|
||
<File>logs/project_error.log</File>
|
||
<!--是否追加到文件末尾,默认为true-->
|
||
<append>true</append>
|
||
<!-- ThresholdFilter过滤低于指定阈值的事件。 对于等于或高于阈值的事件,ThresholdFilter将在调用其decision()方法时响应NEUTRAL。 但是,将拒绝级别低于阈值的事件 -->
|
||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||
<level>ERROR</level><!-- 低于ERROR级别的日志(debug,info)将被拒绝,等于或者高于ERROR的级别将相应NEUTRAL -->
|
||
</filter>
|
||
<!--有两个与RollingFileAppender交互的重要子组件。 第一个RollingFileAppender子组件,即RollingPolicy:负责执行翻转所需的操作。
|
||
RollingFileAppender的第二个子组件,即TriggeringPolicy:将确定是否以及何时发生翻转。 因此,RollingPolicy负责什么和TriggeringPolicy负责什么时候.
|
||
作为任何用途,RollingFileAppender必须同时设置RollingPolicy和TriggeringPolicy,但是,如果其RollingPolicy也实现了TriggeringPolicy接口,则只需要显式指定前者。-->
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<!-- 活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次 -->
|
||
<!-- 文件名:logs/project_error.2017-12-05.0.log -->
|
||
<!-- 注意:SizeAndTimeBasedRollingPolicy中 %i和%d令牌都是强制性的,必须存在,要不会报错 -->
|
||
<fileNamePattern>logs/project_error.%d.%i.log</fileNamePattern>
|
||
<!-- 每产生一个日志文件,该日志文件的保存期限为30天, ps:maxHistory的单位是根据fileNamePattern中的翻转策略自动推算出来的,例如上面选用了yyyy-MM-dd,则单位为天
|
||
如果上面选用了yyyy-MM,则单位为月,另外上面的单位默认为yyyy-MM-dd-->
|
||
<maxHistory>30</maxHistory>
|
||
<!-- 每个日志文件到10mb的时候开始切分,最多保留30天,但最大到20GB,哪怕没到30天也要删除多余的日志 -->
|
||
<totalSizeCap>20GB</totalSizeCap>
|
||
<!-- maxFileSize:这是活动文件的大小,默认值是10MB,测试时可改成5KB看效果 -->
|
||
<maxFileSize>10MB</maxFileSize>
|
||
</rollingPolicy>
|
||
<!--编码器-->
|
||
<encoder>
|
||
<!-- pattern节点,用来设置日志的输入格式 ps:日志文件中没有设置颜色,否则颜色部分会有ESC[0:39em等乱码-->
|
||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%15.15(%thread)] %-40.40(%logger{40}) : %msg%n</pattern>
|
||
<!-- 记录日志的编码:此处设置字符集 - -->
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<appender name="sql_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<File>logs/project_sql.log</File>
|
||
<append>true</append>
|
||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||
<level>DEBUG</level>
|
||
</filter>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<fileNamePattern>logs/project_sql.%d.%i.log</fileNamePattern>
|
||
<maxHistory>30</maxHistory>
|
||
<totalSizeCap>20GB</totalSizeCap>
|
||
<maxFileSize>10MB</maxFileSize>
|
||
</rollingPolicy>
|
||
<encoder>
|
||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%15.15(%thread)] %-40.40(%logger{40}) : %msg%n</pattern>
|
||
<charset>UTF-8</charset>
|
||
</encoder>
|
||
</appender>
|
||
|
||
<root level="WARN">
|
||
<appender-ref ref="STDOUT" />
|
||
</root>
|
||
|
||
<!-- 指定项目中某个包,当有日志操作行为时的日志记录级别 -->
|
||
<!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
|
||
<logger name="com.ycwl.basic" level="INFO">
|
||
<appender-ref ref="info_log" />
|
||
<appender-ref ref="error_log" />
|
||
</logger>
|
||
|
||
<!-- 利用logback输入mybatis的sql日志,
|
||
注意:如果不加 additivity="false" 则此logger会将输出转发到自身以及祖先的logger中,就会出现日志文件中sql重复打印-->
|
||
<logger name="com.ycwl.basic.mapper" level="DEBUG" additivity="false">
|
||
<appender-ref ref="sql_log" />
|
||
</logger>
|
||
|
||
</configuration> |