From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-eln/jnpf-eln-server/src/main/resources/logback-spring.xml |  300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 300 insertions(+), 0 deletions(-)

diff --git a/jnpf-eln/jnpf-eln-server/src/main/resources/logback-spring.xml b/jnpf-eln/jnpf-eln-server/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..2235149
--- /dev/null
+++ b/jnpf-eln/jnpf-eln-server/src/main/resources/logback-spring.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+
+    <!--鏃ュ織鏍煎紡搴旂敤spring boot榛樿鐨勬牸寮忥紝涔熷彲浠ヨ嚜宸辨洿鏀�-->
+    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+    <property name="FILE_LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] [%logger{50}] [%M] [%line] - %msg%n" />
+    <springProperty scope="context" name="SERVICE_NAME" source="spring.application.name" defaultValue="jnpf"/>
+
+    <!--瀹氫箟鏃ュ織瀛樻斁鐨勪綅缃紝榛樿瀛樻斁鍦ㄩ」鐩惎鍔ㄧ殑鐩稿璺緞鐨勭洰褰�-->
+    <springProperty scope="context" name="LOG_PATH" source="log.path" defaultValue="log/${SERVICE_NAME}"/>
+    <!-- 鍏ㄥ眬鏃ュ織绛夌骇 -->
+    <springProperty scope="context" name="LOG_LEVEL_ROOT" source="log.level.root" defaultValue="INFO"/>
+    <!-- 鏈嶅姟鑷畾涔夌瓑绾� 濡傞渶鑷畾涔夋湇鍔℃棩蹇楃瓑绾� 淇敼涓嬫柟鐨勩�愯嚜瀹氫箟鏈嶅姟鍚嶃�戜笌nacos涓婄殑log.level.鑷畾涔夋湇鍔″悕=绛夌骇 -->
+    <springProperty scope="context" name="LOG_LEVEL" source="log.level.jnpf-eln" defaultValue="${LOG_LEVEL_ROOT}"/>
+
+    <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� ERROR 鏃ュ織 -->
+    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+        <file>${LOG_PATH}/log_error.log</file>
+
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+            <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+            <fileNamePattern>${LOG_PATH}/error/%d{yyyy-MM-dd,aux}/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+            <maxHistory>7</maxHistory>
+
+            <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+            鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+            <maxFileSize>10MB</maxFileSize>
+        </rollingPolicy>
+
+        <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+        <append>true</append>
+
+        <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${FILE_LOG_PATTERN}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+
+        <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍error绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>error</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+
+    <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� INFO 鏃ュ織 -->
+    <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+        <file>${LOG_PATH}/log_info.log</file>
+
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+            <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+            <fileNamePattern>${LOG_PATH}/info/%d{yyyy-MM-dd,aux}/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+            <maxHistory>7</maxHistory>
+
+            <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+            鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+            <maxFileSize>10MB</maxFileSize>
+        </rollingPolicy>
+
+        <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+        <append>true</append>
+
+        <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${FILE_LOG_PATTERN}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+
+        <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍info绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+
+    <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� WARN 鏃ュ織 -->
+    <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+        <file>${LOG_PATH}/log_warn.log</file>
+
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+            <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+            <fileNamePattern>${LOG_PATH}/warn/%d{yyyy-MM-dd,aux}/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+            <maxHistory>7</maxHistory>
+
+            <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+            鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+            <maxFileSize>10MB</maxFileSize>
+        </rollingPolicy>
+
+        <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+        <append>true</append>
+
+        <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${FILE_LOG_PATTERN}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+
+        <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍warn绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel涓� DEBUG 鏃ュ織 -->
+    <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+        <file>${LOG_PATH}/log_debug.log</file>
+
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+            <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+            <fileNamePattern>${LOG_PATH}/debug/%d{yyyy-MM-dd,aux}/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+            <maxHistory>7</maxHistory>
+
+            <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+            鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+            <maxFileSize>10MB</maxFileSize>
+        </rollingPolicy>
+
+        <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+        <append>true</append>
+
+        <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${FILE_LOG_PATTERN}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+
+        <!-- 姝ゆ棩蹇楁枃浠跺彧璁板綍debug绾у埆鐨� -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+
+    <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛屾墍鏈夋棩蹇� -->
+    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+        <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+        <file>${LOG_PATH}/log_total.log</file>
+
+        <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+            <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+            <fileNamePattern>${LOG_PATH}/total/%d{yyyy-MM-dd,aux}/log-total-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <!--鏃ュ織鏈�澶х殑鍘嗗彶7澶�-->
+            <maxHistory>7</maxHistory>
+
+            <!-- 闄ゆ寜鏃ュ織璁板綍涔嬪锛岃繕閰嶇疆浜嗘棩蹇楁枃浠朵笉鑳借秴杩�2M锛岃嫢瓒呰繃2M锛屾棩蹇楁枃浠朵細浠ョ储寮�0寮�濮嬶紝
+            鍛藉悕鏃ュ織鏂囦欢锛屼緥濡俵og-error-2013-12-21.0.log -->
+            <maxFileSize>10MB</maxFileSize>
+        </rollingPolicy>
+
+        <!-- 杩藉姞鏂瑰紡璁板綍鏃ュ織 -->
+        <append>true</append>
+
+        <!-- 鏃ュ織鏂囦欢鐨勬牸寮� -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${FILE_LOG_PATTERN}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+    </appender>
+
+
+    <!-- 寮傛杈撳嚭 DEBUG -->
+    <appender name="ASYNC_FILE_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <appender-ref ref="FILE_DEBUG"/>
+    </appender>
+    <!-- 寮傛杈撳嚭 INFO -->
+    <appender name="ASYNC_FILE_INFO" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <appender-ref ref="FILE_INFO"/>
+    </appender>
+    <!-- 寮傛杈撳嚭 WARN -->
+    <appender name="ASYNC_FILE_WARN" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <appender-ref ref="FILE_WARN"/>
+    </appender>
+    <!-- 寮傛杈撳嚭 ERROR -->
+    <appender name="ASYNC_FILE_ERROR" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <appender-ref ref="FILE_ERROR"/>
+    </appender>
+    <!-- 寮傛杈撳嚭 ALL -->
+    <appender name="ASYNC_FILE_ALL" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <appender-ref ref="FILE_ALL"/>
+    </appender>
+
+
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+    </appender>
+
+
+    <!-- 寮傛杈撳嚭 鎺у埗鍙� -->
+    <appender name="ASYNC_STDOUT" class="ch.qos.logback.classic.AsyncAppender">
+        <discardingThreshold>0</discardingThreshold>
+        <queueSize>256</queueSize>
+        <appender-ref ref="STDOUT"/>
+    </appender>
+
+
+    <!--<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
+        &lt;!&ndash; 蹇呭~锛氱洰鏍囷細LogStash鐨� IP:Port &ndash;&gt;
+        <destination>192.168.0.50:50000</destination>
+        &lt;!&ndash; 鍙�夛細淇濇寔绋嬪簭瀛樻椿鏃堕棿 &ndash;&gt;
+        <keepAliveDuration>5 minutes</keepAliveDuration>
+        &lt;!&ndash; 鍙�夛細閲嶈繛寤惰繜鏃堕暱 &ndash;&gt;
+        <reconnectionDelay>10 second</reconnectionDelay>
+        &lt;!&ndash; 鍙�夛細绛夊緟绛栫暐 &ndash;&gt;
+        <waitStrategyType>sleeping</waitStrategyType>
+        &lt;!&ndash;  ============ encoder蹇呴』閰嶇疆,鏈夊绉嶅彲閫� ============= &ndash;&gt;
+        &lt;!&ndash; 缂栫爜鍣ㄤ簩锛歀oggingEventCompositeJsonEncoder &ndash;&gt;
+        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+            <providers>
+                &lt;!&ndash; 鏃堕棿鎴筹細鏃跺尯 &ndash;&gt;
+                <timestamp>
+                    <timeZone>UTC</timeZone>
+                </timestamp>
+                &lt;!&ndash; 妯″紡 &ndash;&gt;
+                <pattern>
+                    <pattern>
+                        {
+                        "severity": "%level",
+                        "service": "${SERVICE_NAME:-}",
+                        "trace": "%X{X-B3-TraceId:-}",
+                        "span": "%X{X-B3-SpanId:-}",
+                        "exportable": "%X{X-Span-Export:-}",
+                        "pid": "${PID:-}",
+                        "thread": "%thread",
+                        "class": "%logger{40}",
+                        "msg": "%message"
+                        &lt;!&ndash;"idx_pre": "elk-original-third-access",&ndash;&gt;
+                        &lt;!&ndash;"json": "#asJson{%message}"  杩欎釜asJson鍙互鎶婂搴旂殑瀛楃涓蹭綔涓簀son瀵硅薄鍙栧嚭鏉ワ紝杩欐牱es鍙互瀵筳son閲岄潰鐨勫瓧娈电储寮曚簡&ndash;&gt;
+                        }
+                    </pattern>
+                </pattern>
+            </providers>
+        </encoder>
+    </appender>-->
+    <!--<appender name="skywalking-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
+        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
+                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
+            </layout>
+        </encoder>
+    </appender>-->
+
+
+    <root level="${LOG_LEVEL}">
+        <appender-ref ref="ASYNC_STDOUT"/>
+        <appender-ref ref="ASYNC_FILE_ERROR"/>
+        <appender-ref ref="ASYNC_FILE_INFO"/>
+        <appender-ref ref="ASYNC_FILE_WARN"/>
+        <appender-ref ref="ASYNC_FILE_DEBUG"/>
+        <appender-ref ref="ASYNC_FILE_ALL"/>
+        <!--<appender-ref ref="LOGSTASH"/>-->
+        <!--<appender-ref ref="skywalking-log"/>-->
+    </root>
+
+
+</configuration>

--
Gitblit v1.8.0