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-app/jnpf-app-server/src/main/resources/logback-spring.xml | 335 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 335 insertions(+), 0 deletions(-)
diff --git a/jnpf-app/jnpf-app-server/src/main/resources/logback-spring.xml b/jnpf-app/jnpf-app-server/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..79f9e23
--- /dev/null
+++ b/jnpf-app/jnpf-app-server/src/main/resources/logback-spring.xml
@@ -0,0 +1,335 @@
+<?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-app" 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>
+
+
+ <!-- 鏃ュ織璁板綍鍣紝鏃ユ湡婊氬姩璁板綍锛宭evel 鏍规嵁閰嶇疆鍔ㄦ�佽緭鍑烘棩蹇� -->
+ <appender name="FILE_RELEASE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <!-- 姝e湪璁板綍鐨勬棩蹇楁枃浠剁殑璺緞鍙婃枃浠跺悕 -->
+ <file>${LOG_PATH}/log_release.log</file>
+
+ <!-- 鏃ュ織璁板綍鍣ㄧ殑婊氬姩绛栫暐锛屾寜鏃ユ湡锛屾寜澶у皬璁板綍 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+ <!-- 褰掓。鐨勬棩蹇楁枃浠剁殑璺緞锛�%d{yyyy-MM-dd}鎸囧畾鏃ユ湡鏍煎紡锛�%i鎸囧畾绱㈠紩 -->
+ <fileNamePattern>${LOG_PATH}/release/%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>${LOG_LEVEL}</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </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">
+ <!– 蹇呭~锛氱洰鏍囷細LogStash鐨� IP:Port –>
+ <destination>192.168.0.50:50000</destination>
+ <!– 鍙�夛細淇濇寔绋嬪簭瀛樻椿鏃堕棿 –>
+ <keepAliveDuration>5 minutes</keepAliveDuration>
+ <!– 鍙�夛細閲嶈繛寤惰繜鏃堕暱 –>
+ <reconnectionDelay>10 second</reconnectionDelay>
+ <!– 鍙�夛細绛夊緟绛栫暐 –>
+ <waitStrategyType>sleeping</waitStrategyType>
+ <!– ============ encoder蹇呴』閰嶇疆,鏈夊绉嶅彲閫� ============= –>
+ <!– 缂栫爜鍣ㄤ簩锛歀oggingEventCompositeJsonEncoder –>
+ <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+ <providers>
+ <!– 鏃堕棿鎴筹細鏃跺尯 –>
+ <timestamp>
+ <timeZone>UTC</timeZone>
+ </timestamp>
+ <!– 妯″紡 –>
+ <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"
+ <!–"idx_pre": "elk-original-third-access",–>
+ <!–"json": "#asJson{%message}" 杩欎釜asJson鍙互鎶婂搴旂殑瀛楃涓蹭綔涓簀son瀵硅薄鍙栧嚭鏉ワ紝杩欐牱es鍙互瀵筳son閲岄潰鐨勫瓧娈电储寮曚簡–>
+ }
+ </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