把配置文件放到resources这个classpath目录即可生效,日志输入样式是从springboot中日志配置中copy过来的, 其他常用配置不做过多注释了。
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> <property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> <property name="MAX_FILE_SIZE" value="20MB"></property> <property name="MAX_HISTORY" value="20"></property> <property name="TOTAL_SIZECAP" value="10GB"></property> <property name="LOG_DIR" value="logs"/> <property name="DEBUG_LOG_FILE" value="${LOG_DIR}/debug/debug.log"/> <property name="INFO_LOG_FILE" value="${LOG_DIR}/info/info.log"/> <property name="WARN_LOG_FILE" value="${LOG_DIR}/warn/warn.log"/> <property name="ERROR_LOG_FILE" value="${LOG_DIR}/error/error.log"/> <!--console--> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> </appender> <!--debug--> <appender name="FILE-DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${DEBUG_LOG_FILE}</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- rollover daily --> <fileNamePattern>${DEBUG_LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> <totalSizeCap>${TOTAL_SIZECAP}</totalSizeCap> </rollingPolicy> </appender> <!--info--> <appender name="FILE-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${INFO_LOG_FILE}</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${INFO_LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> <totalSizeCap>${TOTAL_SIZECAP}</totalSizeCap> </rollingPolicy> </appender> <!--warn--> <appender name="FILE-WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${WARN_LOG_FILE}</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${WARN_LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> <totalSizeCap>${TOTAL_SIZECAP}</totalSizeCap> </rollingPolicy> </appender> <!--error--> <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${ERROR_LOG_FILE}</file> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${ERROR_LOG_FILE}-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <maxFileSize>${MAX_FILE_SIZE}</maxFileSize> <maxHistory>${MAX_HISTORY}</maxHistory> <totalSizeCap>${TOTAL_SIZECAP}</totalSizeCap> </rollingPolicy> </appender> <logger name="com.cymin" level="DEBUG"/> <!--root--> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE-DEBUG" /> <appender-ref ref="FILE-INFO" /> <appender-ref ref="FILE-WARN" /> <appender-ref ref="FILE-ERROR" /> </root> </configuration>