Przeglądaj źródła

增加日志限制

USER-20240325AU\Administrator 1 rok temu
rodzic
commit
145f579c0d

+ 2 - 0
zd-gateway/src/main/java/com/zd/gateway/filter/RequestLogFilter.java

@@ -0,0 +1,2 @@
+package com.zd.gateway.filter;public class RequestLogFilter {
+}

+ 166 - 0
zd-gateway/src/main/resources/logback.xml

@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="30 seconds">
+	<jmxConfigurator />
+
+	<include
+		resource="org/springframework/boot/logging/logback/defaults.xml" />
+
+	<property name="LOG_HOME" value="logs" />
+	<property name="log.env" value="@profile.active@" />
+
+	<property name="TRACE_LOG_PATTERN"
+		value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr([%tid]){faint} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
+
+	<appender class="ch.qos.logback.core.ConsoleAppender"
+		name="STDOUT">
+		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+			<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+				<pattern>${TRACE_LOG_PATTERN}</pattern>
+			</layout>
+		</encoder>
+	</appender>
+
+	<appender
+		class="ch.qos.logback.core.rolling.RollingFileAppender" name="FILE">
+		<file>${LOG_HOME}/spring-boot.log</file>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
+			<maxFileSize>256MB</maxFileSize>
+			<maxHistory>30</maxHistory>
+			<!-- 日志总保存量为30GB -->
+			<totalSizeCap>30GB</totalSizeCap>
+			<timeBasedFileNamingAndTriggeringPolicy
+				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<!--文件达到 最大128MB时会被压缩和切割 -->
+				<maxFileSize>256MB</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+		</rollingPolicy>
+		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+			<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+				<pattern>${TRACE_LOG_PATTERN}</pattern>
+			</layout>
+		</encoder>
+	</appender>
+
+	<appender class="ch.qos.logback.classic.AsyncAppender"
+		name="FILE_ASYNC">
+		<discardingThreshold>0</discardingThreshold>
+		<queueSize>512</queueSize>
+		<appender-ref ref="FILE" />
+	</appender>
+
+	<appender
+		class="ch.qos.logback.core.rolling.RollingFileAppender"
+		name="ERROR_FILE">
+		<file>${LOG_HOME}/error.log</file>
+		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+			<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+				<pattern>${TRACE_LOG_PATTERN}</pattern>
+			</layout>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>ERROR</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_HOME}/error.log.%d{yyyy-MM-dd'.log'}
+			</fileNamePattern>
+			<maxHistory>30</maxHistory>
+		</rollingPolicy>
+	</appender>
+
+	<appender
+		class="ch.qos.logback.core.rolling.RollingFileAppender"
+		name="SLOW_SQL_FILE">
+		<file>${LOG_HOME}/sql.slow.log</file>
+		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+			<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+				<pattern>${TRACE_LOG_PATTERN}</pattern>
+			</layout>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>WARN</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_HOME}/sql.slow.log.%d{yyyy-MM-dd'.log'}
+			</fileNamePattern>
+			<maxHistory>30</maxHistory>
+		</rollingPolicy>
+	</appender>
+
+	<appender
+		class="ch.qos.logback.core.rolling.RollingFileAppender"
+		name="ERROR_SQL_FILE">
+		<file>${LOG_HOME}/sql.exception.log</file>
+		<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+			<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
+				<pattern>${TRACE_LOG_PATTERN}</pattern>
+			</layout>
+		</encoder>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>ERROR</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+		<rollingPolicy
+			class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>${LOG_HOME}/sql.exception.log.%d{yyyy-MM-dd'.log'}
+			</fileNamePattern>
+			<maxHistory>30</maxHistory>
+		</rollingPolicy>
+	</appender>
+
+	<logger additivity="false" level="WARN"
+		name="com.tudou.potato.core.mybatis.interceptor.SqlLogInterceptor">
+		<appender-ref ref="SLOW_SQL_FILE" />
+		<appender-ref ref="ERROR_SQL_FILE" />
+	</logger>
+
+	<if
+		condition='p("log.env").equals("dev") || p("log.env").equals("local")'>
+		<then>
+			<root level="INFO">
+				<appender-ref ref="STDOUT" />
+				<appender-ref ref="FILE_ASYNC" />
+			</root>
+		</then>
+	</if>
+
+	<if condition='p("log.env").equals("beta")'>
+		<then>
+			<root level="INFO">
+				<appender-ref ref="STDOUT" />
+				<appender-ref ref="FILE_ASYNC" />
+				<appender-ref ref="ERROR_FILE" />
+				<!-- <appender-ref ref="EMAIL"/> -->
+			</root>
+		</then>
+	</if>
+
+	<if condition='p("log.env").equals("pre")'>
+		<then>
+			<root level="INFO">
+				<appender-ref ref="FILE_ASYNC" />
+				<appender-ref ref="ERROR_FILE" />
+				<!--<appender-ref ref="EMAIL"/> -->
+			</root>
+		</then>
+	</if>
+
+	<if condition='p("log.env").equals("prod")'>
+		<then>
+			<root level="INFO">
+				<appender-ref ref="FILE_ASYNC" />
+				<appender-ref ref="ERROR_FILE" />
+				<!--<appender-ref ref="EMAIL"/> -->
+			</root>
+		</then>
+	</if>
+
+</configuration>