87 lines
4.1 KiB
XML
87 lines
4.1 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||
<!-- 日志存放路径 -->
|
||
<property name="log.path" value="logs/${project.artifactId}" />
|
||
<!-- 日志输出格式 -->
|
||
<property name="console.log.pattern"
|
||
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
|
||
|
||
<!-- <!– 控制台输出 –>
|
||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||
<encoder>
|
||
<pattern>${console.log.pattern}</pattern>
|
||
<charset>utf-8</charset>
|
||
</encoder>
|
||
</appender>-->
|
||
|
||
<include resource="logback-common.xml" />
|
||
|
||
<include resource="logback-logstash.xml" />
|
||
|
||
<!-- 开启 skywalking 日志收集 -->
|
||
<include resource="logback-skylog.xml" />
|
||
|
||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
|
||
<!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,
|
||
所以我们使用下面的策略,可以避免输出 Error 的日志-->
|
||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||
<!--过滤 Error-->
|
||
<level>ERROR</level>
|
||
<!--匹配到就禁止-->
|
||
<onMatch>DENY</onMatch>
|
||
<!--没有匹配到就允许-->
|
||
<onMismatch>ACCEPT</onMismatch>
|
||
</filter>
|
||
<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
|
||
如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
|
||
的日志改名为今天的日期。即,<File> 的日志都是当天的。
|
||
-->
|
||
<File>${LOG_PATH}${LOG_FILE}</File>
|
||
<encoder>
|
||
<charset>UTF-8</charset>
|
||
<pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
|
||
</encoder>
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||
<fileNamePattern>${LOG_PATH}info/${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||
<maxFileSize>50MB</maxFileSize>
|
||
<maxHistory>20</maxHistory> <!-- 保留180天 -->
|
||
</rollingPolicy>
|
||
</appender>
|
||
|
||
<!--error log-->
|
||
<appender name="ERRORFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||
<!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter-->
|
||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||
<level>Error</level>
|
||
</filter>
|
||
<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
|
||
如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
|
||
的日志改名为今天的日期。即,<File> 的日志都是当天的。
|
||
-->
|
||
<File>${LOG_PATH}error.${LOG_FILE}</File>
|
||
<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
|
||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy ">
|
||
<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
|
||
<FileNamePattern>${LOG_PATH}error/${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz</FileNamePattern>
|
||
<!--只保留最近90天的日志-->
|
||
<maxFileSize>50MB</maxFileSize>
|
||
<maxHistory>180</maxHistory>
|
||
<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
|
||
<!--<totalSizeCap>1GB</totalSizeCap>-->
|
||
</rollingPolicy>
|
||
<!--日志输出编码格式化-->
|
||
<encoder>
|
||
<charset>UTF-8</charset>
|
||
<pattern>%date [%level] [%thread] %logger{60} [%file : %line] %msg%n</pattern>
|
||
</encoder>
|
||
</appender>
|
||
|
||
|
||
<root level="INFO">
|
||
<appender-ref ref="CONSOLE"/>
|
||
<appender-ref ref="FILE"/>
|
||
<appender-ref ref="ERRORFILE"/>
|
||
</root>
|
||
</configuration>
|