logback中的ch.qos.logback.classic.AsyncAppender 通过阻塞队列方式,异步写入日志
logback-spring.xml配置
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--指定property属性变量--> <property name="log.path" value="/logs/logdemo"/> <!-- 日志输出格式 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n --> <!-- 控制台 appender--> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 文件 滚动日志 (all)--> <appender name="allLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 当前日志输出路径、文件名 --> <file>${log.path}/all.log</file> <!--日志输出格式--> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!--历史日志归档策略--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 历史日志: 归档文件名 --> <fileNamePattern>${log.path}/%d{yyyy-MM, aux}/all.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <!--单个文件的最大大小--> <maxFileSize>64MB</maxFileSize> <!--日志文件保留天数--> <maxHistory>15</maxHistory> </rollingPolicy> </appender> <!-- 文件 滚动日志 (仅error)--> <appender name="errorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 当前日志输出路径、文件名 --> <file>${log.path}/error.log</file> <!--日志输出格式--> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!--历史日志归档策略--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 历史日志: 归档文件名 --> <fileNamePattern>${log.path}/%d{yyyy-MM, aux}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <!--单个文件的最大大小--> <maxFileSize>64MB</maxFileSize> <!--日志文件保留天数--> <maxHistory>15</maxHistory> </rollingPolicy> <!-- 此日志文档只记录error级别的 level过滤器--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>error</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 文件 异步日志(async) --> <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender" > <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>1024</queueSize> <neverBlock>true</neverBlock> <!-- 添加附加的appender,最多只能添加一个 --> <appender-ref ref="allLog" /> </appender> <!-- root 级别的配置 --> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="ASYNC"/> <appender-ref ref="errorLog" /> </root> <!--可输出mapper层sql语句等--> <logger name="com.tingcream" level="debug"> </logger> <!--输出jdbc 事务相关信息--> <logger name="org.springframework.jdbc" level="debug"> </logger> </configuration>
<!-- 文件 异步日志(async) -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender" >
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>1024</queueSize>
<neverBlock>true</neverBlock>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="allLog" />
</appender>
Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1