<?xml version="1.0" encoding="UTF-8"?>
<!-- 控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${normal-pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
</appender>
<!--业务主日志-->
<appender name="fileDefault" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.dir}/common.log</file>
<prudent>false</prudent>
<Append>true</Append>
<encoder>
<pattern>${normal-pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.dir}/common.log.%d{yyyy-MM-dd-HH}</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="common_async" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>2000</queueSize>
<appender-ref ref="fileDefault"/>
<discardingThreshold>0</discardingThreshold>
<!--record lineNo-->
<includeCallerData>true</includeCallerData>
</appender>
<!--别的-->
<appender name="unknown" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.dir}/unknown.log</file>
<prudent>false</prudent>
<Append>true</Append>
<encoder>
<pattern>${normal-pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.dir}/unknown.log.%d{yyyy-MM-dd-HH}</fileNamePattern>
</rollingPolicy>
</appender>
<appender name="unknown_async" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>2000</queueSize>
<appender-ref ref="unknown"/>
<includeCallerData>true</includeCallerData>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.dir}/error.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>${error-pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
</appender>
<!-- 确定有哪些日志需要走这个配置 除了写成包路径,还可以写自己定义的名字 false是不会向下传递了 -->
<logger name="com.bee.honeycomb" additivity="false" level="INFO">
<appender-ref ref="common_async"/>
<appender-ref ref="file_error"/>
</logger>
<root>
<level value="INFO"/>
<appender-ref ref="stdout"/>
<appender-ref ref="unknown_async"/>
<appender-ref ref="file_error"/>
</root>