<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <springProperty scope="context" name="applicationName" source="spring.application.name" /> <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level [%X{EagleEye-TraceID}-%X{traceId}] %logger{50} - %msg%n"/> <!--定义日志文件的存储地址 --> <property name="LOG_HOME" value="${HOME}/logs/${applicationName}/" /> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <!-- SERVICE_LOG --> <appender name="SERVICE_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_HOME}/service.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/service.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--日志文件保留天数--> <maxHistory>7</maxHistory> <maxFileSize>30MB</maxFileSize> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <appender name="ASYNC_SERVICE_APPENDER" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="SERVICE_APPENDER"/> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>256</queueSize> </appender> <logger name="SERVICE_LOG" level="INFO" additivity="false"> <appender-ref ref="ASYNC_SERVICE_APPENDER" /> </logger> <!-- SAL_LOG --> <appender name="SAL_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_HOME}/sal.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/sal.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--日志文件保留天数--> <maxHistory>7</maxHistory> <maxFileSize>30MB</maxFileSize> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <appender name="ASYNC_SAL_APPENDER" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="SAL_APPENDER"/> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>256</queueSize> </appender> <logger name="SAL_LOG" level="INFO" additivity="false"> <appender-ref ref="ASYNC_SAL_APPENDER" /> </logger> <!-- DAL_LOG --> <appender name="DAL_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_HOME}/dal.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/dal.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--日志文件保留天数--> <maxHistory>7</maxHistory> <maxFileSize>30MB</maxFileSize> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <appender name="ASYNC_DAL_APPENDER" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="DAL_APPENDER"/> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>256</queueSize> </appender> <logger name="DAL_LOG" level="INFO" additivity="false"> <appender-ref ref="ASYNC_DAL_APPENDER" /> </logger> <!-- ERROR_LOG --> <appender name="ERROR_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_HOME}/error.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--日志文件保留天数--> <maxHistory>7</maxHistory> <maxFileSize>30MB</maxFileSize> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <appender name="ASYNC_ERROR_APPENDER" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="ERROR_APPENDER"/> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>256</queueSize> </appender> <logger name="ERROR_LOG" level="INFO" additivity="false"> <appender-ref ref="ASYNC_ERROR_APPENDER"/> <appender-ref ref="STDOUT"/> </logger> <!-- all_log--> <appender name="ALL_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${LOG_HOME}/all.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/all.%d{yyyy-MM-dd}.%i.log</FileNamePattern> <!--日志文件保留天数--> <maxHistory>7</maxHistory> <maxFileSize>30MB</maxFileSize> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>${LOG_PATTERN}</pattern> </encoder> </appender> <appender name="ASYNC_ALL_APPENDER" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="ALL_APPENDER"/> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>256</queueSize> </appender> <logger name="com.yundong.third" level="INFO" additivity="false"> <appender-ref ref="ASYNC_ALL_APPENDER"/> <appender-ref ref="STDOUT"/> </logger> <!-- 日志输出级别 --> <root level="INFO"> <appender-ref ref="STDOUT" /> <appender-ref ref="ASYNC_ALL_APPENDER" /> </root> </configuration>