<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志目录-->
<property name="PROJECT_PATH" value="../log"/>
<!--存放天数-->
<property name="LOG_FILE_MAX_HISTORY" value="30"/>
<!-- 文件大小-->
<property name="LOG_FILE_MAX_SIZE" value="100KB"/>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<!--日志输出格式-->
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] [%X{TRACE_ID}] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!--控制台-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 滚动记录文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- false,清空现存文件 防止单个文件过大-->
<append>false</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<file>${PROJECT_PATH}/api.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${logging.level}</level>
</filter>
<!--按照文件大小及日期切割文件并命名-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${PROJECT_PATH}/back/%d{yyyy-MM}/api-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY}</maxHistory>
</rollingPolicy>
</appender>
<!-- 文件输出日志 (文件大小策略进行文件输出,每小时产生一个日志文件给异常监控平台进行分析) -->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${PROJECT_PATH}/error.log</File>
<append>false</append>
<prudent>false</prudent>
<!-- 日志文件rolling策略 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${PROJECT_PATH}/back/%d{yyyy-MM}/error_%d{yyyy-MM-dd}.log</FileNamePattern>
<!-- 日志在磁盘上保留天数 -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<!-- 过滤器,只ACCEPT接收ERROR级别的日志,其它日志级别都DENY拒绝 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<!-- 日志输出格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${pattern}</pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 把日志异步输出到磁盘文件中,避免每次都进行磁盘IO操作 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>10000</queueSize>
<appender-ref ref="FILE" />
</appender>
<root level="info">
<!-- 生产环境,可以不需要再控制台输出日志 -->
<appender-ref ref="STDOUT" />
<!-- 异步输出日志到磁盘文件中 -->
<appender-ref ref="FILE" />
<!-- 错误文件,需要实时输出到磁盘中 -->
<appender-ref ref="ERROR_FILE" />
</root>
<logger name="com.*" level="debug"/>
<logger name="springfox.documentation.swagger2" level="off"/>
<logger name="io.swagger.models.parameters" level="off"/>
<logger name="springfox.documentation.spring.web.readers.operation" level="off"/>
</configuration>
logback.xml文件配置
最新推荐文章于 2024-05-08 14:28:05 发布