| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration debug="false" scan="false" scanPeriod="30 seconds">
- <springProperty scope="context" name="logLevel" source="log.level"/>
- <springProperty scope="context" name="logPath" source="log.path"/>
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%level] [%class:%line] - %m %n</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>INFO</level>
- </filter>
- </appender>
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logPath}.log</file>
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%level] [%class:%line] - %m %n</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>DEBUG</level>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logPath}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <!-- 文件最大保存历史数量 -->
- <MaxHistory>1000</MaxHistory>
- <maxFileSize>5120MB</maxFileSize>
- <totalSizeCap>200GB</totalSizeCap>
- <cleanHistoryOnStart>true</cleanHistoryOnStart>
- </rollingPolicy>
- </appender>
- <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logPath}-ERROR.log</file>
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%level] [%class:%line] - %m %n</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>ERROR</level>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${logPath}-ERROR.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <!-- 文件最大保存历史数量 -->
- <MaxHistory>10</MaxHistory>
- <maxFileSize>512MB</maxFileSize>
- <totalSizeCap>20GB</totalSizeCap>
- <cleanHistoryOnStart>true</cleanHistoryOnStart>
- </rollingPolicy>
- </appender>
- <appender name="asyncAppender" class="ch.qos.logback.classic.AsyncAppender">
- <!-- 设置为0不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
- <discardingThreshold>0</discardingThreshold>
- <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
- <queueSize>100000</queueSize>
- <!--队列满了直接丢弃要写的消息-->
- <neverBlock>false</neverBlock>
- <!--是否包含调用方的信息,false则无法打印类名方法名行号等-->
- <includeCallerData>true</includeCallerData>
- <!-- 添加附加的appender,最多只能添加一个 -->
- <appender-ref ref="FILE"/>
- </appender>
- <appender name="asyncAppender2" class="ch.qos.logback.classic.AsyncAppender">
- <!-- 设置为0不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
- <discardingThreshold>0</discardingThreshold>
- <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
- <queueSize>10000</queueSize>
- <!--队列满了直接丢弃要写的消息-->
- <neverBlock>false</neverBlock>
- <!--是否包含调用方的信息,false则无法打印类名方法名行号等-->
- <includeCallerData>true</includeCallerData>
- <!-- 添加附加的appender,最多只能添加一个 -->
- <appender-ref ref="FILE_ERROR"/>
- </appender>
- <root level="INFO"> <!-- 可以设置为DEBUG; -->
- <!-- 生产环境请去掉STDOUT,避免阻塞; -->
- <appender-ref ref="STDOUT" />
- <appender-ref ref="asyncAppender" />
- <appender-ref ref="asyncAppender2" />
- </root>
- </configuration>
|