feat: 日志目录使用INSTANCE_NAME区分多实例
问题:多实例部署时,APP_NAME相同导致日志互相覆盖 - 实例1: fund-sys (普通租户) - 实例2: fund-sys-vip (VIP租户) - 日志都写入 /datacfs/applogs/fund-sys/ ❌ 修改: - start.sh: - 添加 -Dapp.instance.name=${INSTANCE_NAME} 参数 - 日志目录改为 ${LOG_HOME}/${INSTANCE_NAME} - logback-spring.xml (9个服务): - APP_NAME source改为 app.instance.name - 默认值保持服务名用于fallback 效果: - 实例1: /datacfs/applogs/fund-sys/info.log - 实例2: /datacfs/applogs/fund-sys-vip/info.log ✅
This commit is contained in:
parent
480bd796f4
commit
69556c047a
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-cust"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-cust"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-exp"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-exp"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-file"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-file"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-gateway"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-gateway"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-proj"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-proj"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-receipt"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-receipt"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-report"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-report"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-req"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-req"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -2,7 +2,8 @@
|
|||||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||||
|
|
||||||
<!-- 从环境变量/系统属性读取配置 -->
|
<!-- 从环境变量/系统属性读取配置 -->
|
||||||
<springProperty scope="context" name="APP_NAME" source="spring.application.name" defaultValue="fund-sys"/>
|
<!-- APP_NAME使用INSTANCE_NAME区分多实例 -->
|
||||||
|
<springProperty scope="context" name="APP_NAME" source="app.instance.name" defaultValue="fund-sys"/>
|
||||||
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
<springProperty scope="context" name="LOG_PATH" source="logging.file.path" defaultValue="/datacfs/applogs"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
<springProperty scope="context" name="LOG_LEVEL_ROOT" source="logging.level.root" defaultValue="INFO"/>
|
||||||
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
<springProperty scope="context" name="LOG_LEVEL_APP" source="logging.level.app" defaultValue="DEBUG"/>
|
||||||
|
|||||||
@ -59,8 +59,9 @@ PID_FILE="${APP_HOME}/${INSTANCE_NAME}.pid"
|
|||||||
# JVM参数(可通过环境变量覆盖)
|
# JVM参数(可通过环境变量覆盖)
|
||||||
JAVA_OPTS="${JAVA_OPTS:--Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200}"
|
JAVA_OPTS="${JAVA_OPTS:--Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200}"
|
||||||
|
|
||||||
# 日志目录参数(其他日志配置在application.yml/logback-spring.xml中)
|
# 日志目录参数(使用INSTANCE_NAME区分实例)
|
||||||
LOG_OPTS="-Dlogging.file.path=${LOG_HOME}"
|
LOG_OPTS="-Dlogging.file.path=${LOG_HOME}"
|
||||||
|
LOG_OPTS="$LOG_OPTS -Dapp.instance.name=${INSTANCE_NAME}"
|
||||||
|
|
||||||
# 多租户参数
|
# 多租户参数
|
||||||
TENANT_OPTS=""
|
TENANT_OPTS=""
|
||||||
@ -77,8 +78,8 @@ if [ -f "$PID_FILE" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 创建日志目录
|
# 创建日志目录(使用INSTANCE_NAME区分实例)
|
||||||
mkdir -p ${LOG_HOME}
|
mkdir -p ${LOG_HOME}/${INSTANCE_NAME}
|
||||||
|
|
||||||
# 启动服务
|
# 启动服务
|
||||||
echo "Starting ${INSTANCE_NAME}..."
|
echo "Starting ${INSTANCE_NAME}..."
|
||||||
@ -94,7 +95,7 @@ if [ -n "${TENANT_ID}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 启动命令:java -cp lib/*:conf MainClass
|
# 启动命令:java -cp lib/*:conf MainClass
|
||||||
nohup java $JAVA_OPTS $LOG_OPTS $TENANT_OPTS -cp "$CLASSPATH" $MAIN_CLASS > /dev/null 2>&1 &
|
nohup java $JAVA_OPTS $LOG_OPTS $TENANT_OPTS -cp "$CLASSPATH" $MAIN_CLASS >${LOG_HOME}/${INSTANCE_NAME}/stdout.log 2>&1 &
|
||||||
|
|
||||||
# 保存PID
|
# 保存PID
|
||||||
echo $! > $PID_FILE
|
echo $! > $PID_FILE
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user