工作中有些业务模块日志输出比较频繁,影响其他业务模块问题排查,可以使用logback实现根据不同的业务输出到不同的日志文件

- "1.0" encoding="UTF-8"?>
-
- <configuration debug="false" scan="false">
- <springProperty scop="context" name="spring.application.name" source="spring.application.name"
- defaultValue="atm-at-web"/>
- <property name="log.path" value="logs/${spring.application.name}"/>
-
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%npattern>
- encoder>
- appender>
-
-
- <appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/info.logfile>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/%d{yyyy-MM}/info.%d{yyyy-MM-dd}.%i.log.gzfileNamePattern>
- <maxFileSize>10MBmaxFileSize>
- <maxHistory>30maxHistory>
- rollingPolicy>
- <encoder>
- <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%npattern>
- encoder>
- appender>
-
-
- <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/error.logfile>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gzfileNamePattern>
- <maxFileSize>10MBmaxFileSize>
- <maxHistory>30maxHistory>
- <totalSizeCap>3GBtotalSizeCap>
- rollingPolicy>
- <encoder>
- <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%npattern>
- encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>ERRORlevel>
- filter>
- appender>
-
-
- <appender name="extApiAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.path}/extApi.logfile>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/%d{yyyy-MM}/extApi.%d{yyyy-MM-dd}.%i.log.gzfileNamePattern>
- <maxFileSize>10MBmaxFileSize>
- <maxHistory>30maxHistory>
- rollingPolicy>
- <encoder>
- <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%npattern>
- encoder>
- appender>
-
-
- <root level="INFO">
- <appender-ref ref="console"/>
- <appender-ref ref="info"/>
- <appender-ref ref="error"/>
- root>
-
- <logger name="extApi" additivity="false" level="INFO">
- <appender-ref ref="console"/>
- <appender-ref ref="extApiAppender"/>
- logger>
-
- configuration>
PS:我们定义了一个名为 extApi 的appender,在相关业务代码中,我们还需要定义一个logger与它绑定。
private final static Logger extApiLogger = LoggerFactory.getLogger("extApi");

