Explorar el Código

新增日志限制

USER-20240325AU\Administrator hace 1 año
padre
commit
ca9f25c8eb

+ 33 - 0
pom.xml

@@ -53,6 +53,8 @@
         <bce.version>0.10.154</bce.version>
         <pinyin4j.version>2.5.1</pinyin4j.version>
         <mybatis-plus.version>3.5.2</mybatis-plus.version>
+        <logback.version>1.1.11</logback.version>
+        <apm-toolkit-logback.version>8.3.0</apm-toolkit-logback.version>
     </properties>
 
     <!-- 依赖声明 -->
@@ -313,6 +315,37 @@
                 <artifactId>zd-security-api</artifactId>
                 <version>${zd.version}</version>
             </dependency>
+
+            <!-- logback begin -->
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-core</artifactId>
+                <version>${logback.version}</version>
+                <scope>compile</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-access</artifactId>
+                <version>${logback.version}</version>
+                <scope>compile</scope>
+            </dependency>
+
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-classic</artifactId>
+                <version>${logback.version}</version>
+                <scope>compile</scope>
+            </dependency>
+
+            <!-- logback end -->
+
+            <dependency>
+                <groupId>org.apache.skywalking</groupId>
+                <artifactId>apm-toolkit-logback-1.x</artifactId>
+                <version>${apm-toolkit-logback.version}</version>
+            </dependency>
+
         </dependencies>
     </dependencyManagement>
 

+ 23 - 0
zd-gateway/pom.xml

@@ -96,6 +96,29 @@
             <version>${swagger.fox.version}</version>
         </dependency>
 
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-access</artifactId>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.skywalking</groupId>
+            <artifactId>apm-toolkit-logback-1.x</artifactId>
+            <version>8.3.0</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 7 - 0
zd-gateway/src/main/java/com/zd/gateway/ZdGatewayApplication.java

@@ -1,12 +1,14 @@
 package com.zd.gateway;
 
 import com.zd.common.core.launch.ZdStartApplication;
+import com.zd.gateway.filter.RequestLogFilter;
 import com.zd.model.constant.ApplicationConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.core.env.Environment;
 import org.springframework.util.StringUtils;
@@ -42,4 +44,9 @@ public class ZdGatewayApplication {
                 ip, port, ip, port
         );
     }
+
+    @Bean
+    public RequestLogFilter requestLogFilter() {
+        return new RequestLogFilter();
+    }
 }

+ 31 - 1
zd-gateway/src/main/java/com/zd/gateway/filter/RequestLogFilter.java

@@ -1,2 +1,32 @@
-package com.zd.gateway.filter;public class RequestLogFilter {
+package com.zd.gateway.filter;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.gateway.filter.GatewayFilter;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.core.Ordered;
+
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+@Slf4j(topic = "gateway-http---")
+public class RequestLogFilter implements GatewayFilter, Ordered {
+    @Override
+    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+        log.info("============================ Request Begin =============================");
+        log.info("Request path: {}", exchange.getRequest().getPath());
+        log.info("Request query params: {}", exchange.getRequest().getQueryParams());
+        log.info("Request headers: {}", exchange.getRequest().getHeaders());
+
+        return chain.filter(exchange).then(Mono.fromRunnable(() -> {
+            log.info("Response status code: {}", exchange.getResponse().getStatusCode());
+            log.info("Response headers: {}", exchange.getResponse().getHeaders());
+            log.info("============================ Response End =============================");
+        }));
+
+    }
+
+    @Override
+    public int getOrder() {
+        return Ordered.LOWEST_PRECEDENCE;
+    }
 }

+ 14 - 0
zd-gateway/src/main/resources/bootstrap.yml

@@ -5,3 +5,17 @@ server:
 spring:
   main:
     allow-bean-definition-overriding: true
+
+## 日志配置
+logging:
+  level:
+    org:
+      springframework:
+        cloud: WARN
+        security: WARN
+        web: WARN
+      apache:
+        http: WARN
+    com:
+      zd:
+        gateway: INFO

+ 6 - 42
zd-gateway/src/main/resources/logback.xml

@@ -5,8 +5,7 @@
 	<include
 		resource="org/springframework/boot/logging/logback/defaults.xml" />
 
-	<property name="LOG_HOME" value="logs" />
-	<property name="log.env" value="@profile.active@" />
+	<property name="LOG_HOME" value="/data-disk/zd_service/zd-logs/@artifactId@" />
 
 	<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}" />
@@ -122,45 +121,10 @@
 		<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>
+	<root level="INFO">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="FILE_ASYNC" />
+		<appender-ref ref="ERROR_FILE" />
+	</root>
 
 </configuration>