看下图
<configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --> <springProperty scope="context" name="logPath" source="logging.path" defaultValue="/apps/log/user"/> <!-- 项目名称配置 如果没有spring.application.name 配置使用默认名称--> <springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue="common-server"/> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--[时间戳][当前线程][日志级别]+[功能模块] +[方法名]+ [描述信息]+[入参(可选)] --> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}]-[%X{EagleEye-TraceID}]-[%thread]-[%-5level]-[%logger{50}] - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <param name="Encoding" value="UTF-8"/> </appender> <!-- 日志文件滚动策略 --> <appender name="FILE_ENV" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logPath}/${applicationName}.log</file> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}]-[%X{EagleEye-TraceID}]-[%thread]-[%-5level]-[%logger{50}] - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${logPath}/${applicationName}%i.log</fileNamePattern> <minIndex>1</minIndex> <maxIndex>9</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>100MB</maxFileSize> </triggeringPolicy> <param name="Encoding" value="UTF-8"/> </appender> <!-- 异步输出,异步的log片段必须在同步段后面,否则不起作用 --> <appender name="FILE_ENV_ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <!--阙值 当队列大小低于这个将丢弃日志 为0的话用不丢弃 --> <discardingThreshold>0</discardingThreshold> <!-- 队列的大小--> <queueSize>1024</queueSize> <!-- neverBolck的put方法是默认阻塞的,设置true后调用offer方法是不阻塞的--> <neverBlock>true</neverBlock> <appender-ref ref="FILE_ENV"/> </appender> <root level="info"> <appender-ref ref="FILE_ENV_ASYNC"/> <appender-ref ref="STDOUT"/> </root> </configuration>