在业务逻辑较为多的系统中,为了能快速的排查线上的问题和清楚的查询各个业务的日志信息,每每须要对不一样业务线的日志进行分开记录:
好比如今系统中有对小金库用户发放奖励和白条用户进行发放奖励。java
logback.xml配置文件以下:spring
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/info.log</File> <append>true</append> <!--过滤器,只打INFO级别的日志--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/program/info.log.%d</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/error.log</File> <append>true</append> <!--过滤器,只打ERROR级别的日志--> <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>${catalina.base}/program/error.log.%d</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!--不一样业务逻辑的日志打印到不一样文件--> <appender name="baitiaoUserAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/bt.log</File> <append>true</append> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/program/bt.log.%d</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="xjkUserAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/xjk.log</File> <append>true</append> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <