看下图
<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>
LogBack日志配置详解
6183

被折叠的 条评论
为什么被折叠?



