|
1 | | -<?xml version="1.0" encoding="UTF-8"?> |
2 | | - |
3 | | -<configuration scan="true" scanPeriod="10 seconds"> |
4 | | - <contextName>logback</contextName> |
5 | | - |
6 | | - <property name="log.path" value="logs/"/> |
7 | | - |
| 1 | +<configuration> |
| 2 | + <!--给控制台输出增加颜色--> |
8 | 3 | <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/> |
9 | | - |
10 | 4 | <conversionRule conversionWord="wex" |
11 | 5 | converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/> |
12 | | - |
13 | 6 | <conversionRule conversionWord="wEx" |
14 | 7 | converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/> |
15 | | - |
| 8 | + |
16 | 9 | <property name="CONSOLE_LOG_PATTERN" |
17 | 10 | 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}}"/> |
18 | | - |
| 11 | + |
| 12 | + <!--输出到控制台--> |
19 | 13 | <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> |
20 | | - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
21 | | - <level>debug</level> |
22 | | - </filter> |
23 | 14 | <encoder> |
24 | 15 | <Pattern>${CONSOLE_LOG_PATTERN}</Pattern> |
25 | 16 | <charset>UTF-8</charset> |
26 | 17 | </encoder> |
27 | 18 | </appender> |
28 | | - |
29 | | - <timestamp key="namedByDay" datePattern="yyyy-MM-dd"/> |
30 | | - |
31 | | - <appender name="FILE" class="io.github.talelin.core.logger.AdvanceRollingFileAppender"> |
32 | | - <dir>${log.path}</dir> |
33 | | - <maxFileSize>5MB</maxFileSize> |
34 | | - |
| 19 | + |
| 20 | + <!--输出到 access 文件夹--> |
| 21 | + <appender name="FILE_ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 22 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 23 | + <fileNamePattern>logs/access/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
| 24 | + <maxFileSize>5MB</maxFileSize> |
| 25 | + </rollingPolicy> |
35 | 26 | <encoder> |
36 | | - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> |
37 | 27 | <charset>UTF-8</charset> |
| 28 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{req.remoteAddr}:%X{req.remotePort}] "%X{req.method} |
| 29 | + %X{req.requestURI} %X{req.protocol}" %X{res.status} %X{req.bodyBytesSent} "%X{req.referer}" |
| 30 | + "%X{req.userAgent}"%n |
| 31 | + </pattern> |
38 | 32 | </encoder> |
39 | | - |
40 | | - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> |
41 | | - <level>debug</level> |
| 33 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> |
| 34 | + <level>INFO</level> |
| 35 | + <onMatch>ACCEPT</onMatch> |
| 36 | + <onMismatch>DENY</onMismatch> |
42 | 37 | </filter> |
43 | 38 | </appender> |
44 | | - |
| 39 | + |
| 40 | + <!--输出到 error 文件夹--> |
| 41 | + <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 42 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 43 | + <fileNamePattern>logs/error/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
| 44 | + <maxFileSize>5MB</maxFileSize> |
| 45 | + </rollingPolicy> |
| 46 | + <encoder> |
| 47 | + <charset>UTF-8</charset> |
| 48 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level |
| 49 | + %logger{50} - %msg%n |
| 50 | + </pattern> |
| 51 | + </encoder> |
| 52 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> |
| 53 | + <level>ERROR</level> |
| 54 | + <onMatch>ACCEPT</onMatch> |
| 55 | + <onMismatch>DENY</onMismatch> |
| 56 | + </filter> |
| 57 | + </appender> |
| 58 | + |
| 59 | + <!--输出到 warn 文件夹--> |
| 60 | + <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 61 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 62 | + <fileNamePattern>logs/warn/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
| 63 | + <maxFileSize>5MB</maxFileSize> |
| 64 | + </rollingPolicy> |
| 65 | + <encoder> |
| 66 | + <charset>UTF-8</charset> |
| 67 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level |
| 68 | + %logger{50} - %msg%n |
| 69 | + </pattern> |
| 70 | + </encoder> |
| 71 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> |
| 72 | + <level>WARN</level> |
| 73 | + <onMatch>ACCEPT</onMatch> |
| 74 | + <onMismatch>DENY</onMismatch> |
| 75 | + </filter> |
| 76 | + </appender> |
| 77 | + |
| 78 | + <!--输出到 info 文件夹--> |
| 79 | + <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 80 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 81 | + <fileNamePattern>logs/info/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
| 82 | + <maxFileSize>5MB</maxFileSize> |
| 83 | + </rollingPolicy> |
| 84 | + <encoder> |
| 85 | + <charset>UTF-8</charset> |
| 86 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level |
| 87 | + %logger{50} - %msg%n |
| 88 | + </pattern> |
| 89 | + </encoder> |
| 90 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> |
| 91 | + <level>INFO</level> |
| 92 | + <onMatch>ACCEPT</onMatch> |
| 93 | + <onMismatch>DENY</onMismatch> |
| 94 | + </filter> |
| 95 | + </appender> |
| 96 | + |
| 97 | + <!--输出到 debug 文件夹--> |
| 98 | + <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 99 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 100 | + <fileNamePattern>logs/debug/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
| 101 | + <maxFileSize>5MB</maxFileSize> |
| 102 | + </rollingPolicy> |
| 103 | + <encoder> |
| 104 | + <charset>UTF-8</charset> |
| 105 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level |
| 106 | + %logger{50} - %msg%n |
| 107 | + </pattern> |
| 108 | + </encoder> |
| 109 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> |
| 110 | + <level>DEBUG</level> |
| 111 | + <onMatch>ACCEPT</onMatch> |
| 112 | + <onMismatch>DENY</onMismatch> |
| 113 | + </filter> |
| 114 | + </appender> |
| 115 | + |
| 116 | + <!--输出到 trace 文件夹--> |
| 117 | + <appender name="FILE_TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| 118 | + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> |
| 119 | + <fileNamePattern>logs/trace/%d{yyyy-MM,aux}/%d{yyyy-MM-dd}.%i.log</fileNamePattern> |
| 120 | + <maxFileSize>5MB</maxFileSize> |
| 121 | + </rollingPolicy> |
| 122 | + <encoder> |
| 123 | + <charset>UTF-8</charset> |
| 124 | + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] "%X{req.method} %X{req.requestURI} %X{req.protocol}" %-5level |
| 125 | + %logger{50} - %msg%n |
| 126 | + </pattern> |
| 127 | + </encoder> |
| 128 | + <filter class="ch.qos.logback.classic.filter.LevelFilter"> |
| 129 | + <level>TRACE</level> |
| 130 | + <onMatch>ACCEPT</onMatch> |
| 131 | + <onMismatch>DENY</onMismatch> |
| 132 | + </filter> |
| 133 | + </appender> |
| 134 | + |
| 135 | + <logger name="io.github.talelin.latticy.module.log.MDCAccessServletFilter" level="INFO" additivit="false"> |
| 136 | + <appender-ref ref="FILE_ACCESS"/> |
| 137 | + </logger> |
| 138 | + |
45 | 139 | <springProfile name="dev"> |
46 | 140 | <root level="INFO"> |
47 | 141 | <appender-ref ref="CONSOLE"/> |
48 | | - <appender-ref ref="FILE"/> |
| 142 | + <appender-ref ref="FILE_ERROR"/> |
| 143 | + <appender-ref ref="FILE_WARN"/> |
| 144 | + <appender-ref ref="FILE_INFO"/> |
| 145 | + <appender-ref ref="FILE_DEBUG"/> |
| 146 | + <appender-ref ref="FILE_TRACE"/> |
49 | 147 | </root> |
50 | 148 | </springProfile> |
51 | | - |
| 149 | + |
52 | 150 | <springProfile name="prod"> |
53 | 151 | <root level="INFO"> |
54 | | - <!--<appender-ref ref="CONSOLE"/>--> |
55 | | - <appender-ref ref="FILE"/> |
| 152 | + <appender-ref ref="FILE_ERROR"/> |
| 153 | + <appender-ref ref="FILE_WARN"/> |
| 154 | + <appender-ref ref="FILE_INFO"/> |
| 155 | + <appender-ref ref="FILE_DEBUG"/> |
| 156 | + <appender-ref ref="FILE_TRACE"/> |
56 | 157 | </root> |
57 | 158 | </springProfile> |
58 | | - |
| 159 | + |
59 | 160 | <springProfile name="test"> |
60 | 161 | <root level="INFO"> |
61 | 162 | <appender-ref ref="CONSOLE"/> |
|
0 commit comments