|
|
@@ -2,22 +2,56 @@
|
|
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
|
|
<contextName>logback</contextName>
|
|
|
<property name="log.path" value="logs/miniapp/miniapp.log"/>
|
|
|
- <property name="CONSOLE_LOG_PATTERN"
|
|
|
- value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/>
|
|
|
+ <property name="error.path" value="logs/miniapp/miniapp-error.log"/>
|
|
|
+ <property name="FILE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS}|%thread|%-5level|%F:%L|%X{ip}|%X{seq}|%X{uid}|%msg%n"/>
|
|
|
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
|
|
<encoder>
|
|
|
- <pattern>%d{HH:mm:ss.SSS}|%thread|%-5level|%F:%L|%X{ip}|%X{seq}|%msg%n</pattern>
|
|
|
+ <pattern>%d{HH:mm:ss.SSS}|%thread|%-5level|%F:%L|%X{ip}|%X{seq}|%X{uid}|%msg%n</pattern>
|
|
|
</encoder>
|
|
|
</appender>
|
|
|
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
<file>${log.path}</file>
|
|
|
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
<fileNamePattern>./logs/miniapp/miniapp-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
|
|
+ <maxHistory>30</maxHistory>
|
|
|
+ <totalSizeCap>10GB</totalSizeCap>
|
|
|
</rollingPolicy>
|
|
|
<encoder>
|
|
|
- <pattern>%d{HH:mm:ss.SSS}|%thread|%-5level|%F:%L|%X{ip}|%X{seq}|%msg%n</pattern>
|
|
|
+ <pattern>${FILE_PATTERN}</pattern>
|
|
|
</encoder>
|
|
|
</appender>
|
|
|
+ <!-- ERROR单独落盘,便于告警对接与问题定位 -->
|
|
|
+ <appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <filter class="ch.qos.logback.core.filter.LevelFilter">
|
|
|
+ <level>ERROR</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ <file>${error.path}</file>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>./logs/miniapp/miniapp-error-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
|
|
|
+ <maxHistory>30</maxHistory>
|
|
|
+ <totalSizeCap>2GB</totalSizeCap>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder>
|
|
|
+ <pattern>${FILE_PATTERN}</pattern>
|
|
|
+ </encoder>
|
|
|
+ </appender>
|
|
|
+ <!-- 异步写盘;includeCallerData必须开启,否则%F:%L打印为空 -->
|
|
|
+ <appender name="asyncFile" class="ch.qos.logback.classic.AsyncAppender">
|
|
|
+ <queueSize>1024</queueSize>
|
|
|
+ <discardingThreshold>0</discardingThreshold>
|
|
|
+ <neverBlock>true</neverBlock>
|
|
|
+ <includeCallerData>true</includeCallerData>
|
|
|
+ <appender-ref ref="file"/>
|
|
|
+ </appender>
|
|
|
+ <appender name="asyncErrorFile" class="ch.qos.logback.classic.AsyncAppender">
|
|
|
+ <queueSize>1024</queueSize>
|
|
|
+ <discardingThreshold>0</discardingThreshold>
|
|
|
+ <neverBlock>true</neverBlock>
|
|
|
+ <includeCallerData>true</includeCallerData>
|
|
|
+ <appender-ref ref="errorFile"/>
|
|
|
+ </appender>
|
|
|
<!-- <logger name="org.springframework.web" level="DEBUG"/> -->
|
|
|
<logger name="org.springframework" level="info"/>
|
|
|
<logger name="org.hibernate" level="info"/>
|
|
|
@@ -32,6 +66,7 @@
|
|
|
<logger name="io.lettuce" level="warn"/>
|
|
|
<root level="debug">
|
|
|
<appender-ref ref="console"/>
|
|
|
- <appender-ref ref="file"/>
|
|
|
+ <appender-ref ref="asyncFile"/>
|
|
|
+ <appender-ref ref="asyncErrorFile"/>
|
|
|
</root>
|
|
|
-</configuration>
|
|
|
+</configuration>
|