<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}}"/>
|
|
<!--输出到控制台-->
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
<encoder>
|
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
|
<charset>UTF-8</charset>
|
</encoder>
|
</appender>
|
|
<!--输出到 access 文件夹-->
|
<appender name="FILE_ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>logs/access/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<totalSizeCap>1GB</totalSizeCap>
|
<maxHistory>30</maxHistory>
|
<maxFileSize>5MB</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<charset>UTF-8</charset>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{req.remoteAddr}:%X{req.remotePort}] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %X{res.status} %X{req.bodyBytesSent} "%X{req.referer}" "%X{req.userAgent}"%n
|
</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>INFO</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
<!--输出到 error 文件夹-->
|
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>logs/error/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<totalSizeCap>1GB</totalSizeCap>
|
<maxHistory>30</maxHistory>
|
<maxFileSize>5MB</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<charset>UTF-8</charset>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level %logger{50} - %msg%n
|
</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>ERROR</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
<!--输出到 warn 文件夹-->
|
<appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>logs/warn/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<totalSizeCap>1GB</totalSizeCap>
|
<maxHistory>30</maxHistory>
|
<maxFileSize>5MB</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<charset>UTF-8</charset>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level %logger{50} - %msg%n
|
</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>WARN</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
<!--输出到 info 文件夹-->
|
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>logs/info/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<totalSizeCap>1GB</totalSizeCap>
|
<maxHistory>30</maxHistory>
|
<maxFileSize>5MB</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<charset>UTF-8</charset>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level %logger{50} - %msg%n
|
</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>INFO</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
<!--输出到 debug 文件夹-->
|
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>logs/debug/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<totalSizeCap>1GB</totalSizeCap>
|
<maxHistory>30</maxHistory>
|
<maxFileSize>5MB</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<charset>UTF-8</charset>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level %logger{50} - %msg%n
|
</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>DEBUG</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
<!--输出到 trace 文件夹-->
|
<appender name="FILE_TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>logs/trace/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<totalSizeCap>1GB</totalSizeCap>
|
<maxHistory>30</maxHistory>
|
<maxFileSize>5MB</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<charset>UTF-8</charset>
|
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level %logger{50} - %msg%n
|
</pattern>
|
</encoder>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>TRACE</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
</appender>
|
|
<logger name="com.cloudroam.module.log.MDCAccessServletFilter" level="INFO" additivity="false">
|
<appender-ref ref="FILE_ACCESS"/>
|
</logger>
|
|
<springProfile name="dev">
|
<root level="INFO">
|
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="FILE_ERROR"/>
|
<appender-ref ref="FILE_WARN"/>
|
<appender-ref ref="FILE_INFO"/>
|
<appender-ref ref="FILE_DEBUG"/>
|
<appender-ref ref="FILE_TRACE"/>
|
</root>
|
</springProfile>
|
|
<springProfile name="prod">
|
<root level="INFO">
|
<appender-ref ref="FILE_ERROR"/>
|
<appender-ref ref="FILE_WARN"/>
|
<appender-ref ref="FILE_INFO"/>
|
<appender-ref ref="FILE_DEBUG"/>
|
<appender-ref ref="FILE_TRACE"/>
|
</root>
|
</springProfile>
|
|
<springProfile name="test">
|
<root level="INFO">
|
<appender-ref ref="CONSOLE"/>
|
</root>
|
</springProfile>
|
|
</configuration>
|