Forráskód Böngészése

feat: 添加json日志输出

weijianghai 1 éve
szülő
commit
0c4f37c439

+ 6 - 0
pom.xml

@@ -145,6 +145,12 @@
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+            <version>7.4</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 2
src/main/java/com/nokia/controller/TestController.java

@@ -16,7 +16,6 @@ public class TestController {
      */
     @GetMapping("/alert")
     public Object alert() {
-        log.error("短信告警测试");
-        return "ok";
+        throw new RuntimeException("短信告警测试");
     }
 }

+ 2 - 1
src/main/resources/application.properties

@@ -1,5 +1,6 @@
 # 启用的配置
-spring.profiles.active=test
+spring.profiles.active=product
+spring.application.name=acl-tousu
 top.url=http://10.17.180.3/prod-api/verifySystem
 dop.url=http://10.17.180.5:8089/prod-api/verifySystem
 woyunwei.url=http://192.168.70.130:13000/PAOOS/aaaa/userservice/getUserInfo.do?method=findUserBySessionID&sessionID=

+ 33 - 0
src/main/resources/logback-spring.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <property name="PATH" value="./log"/>
+    <springProperty scope="context" name="appName" source="spring.application.name"/>
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>
             <Pattern>%d{HH:mm:ss.SSS} %highlight(%-5level) %yellow(%X{traceId}) %magenta([%thread]) %cyan(%logger:%line) %msg%n</Pattern>
@@ -42,9 +43,41 @@
             <onMismatch>DENY</onMismatch>
         </filter>
     </appender>
+    <appender name="TRACE_JSON" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${PATH}/trace.json</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!-- rollover daily -->
+            <fileNamePattern>${PATH}/trace.%d{yyyy-MM-dd_HH}.%i.json</fileNamePattern>
+            <!-- each file should be at most 10MB, keep 60 days worth of history, but at most 20GB -->
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>60</maxHistory>
+            <totalSizeCap>20GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+            <providers>
+                <pattern>
+                    <pattern>
+                        {
+                        "appName": "${appName}",
+                        "date": "%date",
+                        "level": "%level",
+                        "traceId": "%X{traceId}",
+                        "pid": "${PID:-}",
+                        "thread": "%thread",
+                        "logger": "%logger",
+                        "line": "%line",
+                        "message": "%message",
+                        "exception":"%xException"
+                        }
+                    </pattern>
+                </pattern>
+            </providers>
+        </encoder>
+    </appender>
     <root level="INFO">
         <appender-ref ref="STDOUT"/>
         <appender-ref ref="TRACE_FILE"/>
         <appender-ref ref="ERROR_FILE"/>
+        <appender-ref ref="TRACE_JSON"/>
     </root>
 </configuration>