fix: 启动/激活日志改走 logback 落盘(System.out 服务运行时不可见)
- HospitalFrontApp:启动完成日志带 PID/激活医院/端口,改 SLF4J;停机钩子同步改 - HospitalRouter:构造器激活医院日志改 SLF4J - 移除上轮联调遗留的异常因果链诊断代码 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
package com.hospital.front;
|
package com.hospital.front;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.SolonMain;
|
import org.noear.solon.annotation.SolonMain;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 医院前置机主程序启动类。
|
* 医院前置机主程序启动类。
|
||||||
@@ -20,29 +21,19 @@ import org.noear.solon.annotation.SolonMain;
|
|||||||
@SolonMain
|
@SolonMain
|
||||||
public class HospitalFrontApp {
|
public class HospitalFrontApp {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(HospitalFrontApp.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主入口。
|
* 主入口。
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// TODO 临时诊断代码:打印完整异常因果链,定位注入失败根因后移除
|
Solon.start(HospitalFrontApp.class, args);
|
||||||
try {
|
|
||||||
Solon.start(HospitalFrontApp.class, args);
|
|
||||||
} catch (Throwable e) {
|
|
||||||
Throwable t = e;
|
|
||||||
int depth = 0;
|
|
||||||
while (t != null && depth < 10) {
|
|
||||||
System.err.println("=== 因果链[" + depth + "]: " + t.getClass().getName() + ": " + t.getMessage());
|
|
||||||
StackTraceElement[] stackTrace = t.getStackTrace();
|
|
||||||
for (int i = 0; i < Math.min(10, stackTrace.length); i++) {
|
|
||||||
System.err.println(" at " + stackTrace[i]);
|
|
||||||
}
|
|
||||||
t = t.getCause();
|
|
||||||
depth++;
|
|
||||||
}
|
|
||||||
System.exit(1);
|
|
||||||
}
|
|
||||||
long pid = ProcessHandle.current().pid();
|
long pid = ProcessHandle.current().pid();
|
||||||
System.out.println("[HospitalFront] 启动完成,PID=" + pid);
|
// 走 logback 落盘(服务方式运行时控制台不可见,System.out 进不了日志文件)
|
||||||
|
log.info("启动完成,PID={},激活医院={},端口={}",
|
||||||
|
pid,
|
||||||
|
Solon.cfg().get("hospital.active", "?"),
|
||||||
|
Solon.cfg().get("server.port", "?"));
|
||||||
// 写 PID 文件(供 start.bat stop / Agent 升级流程强杀使用)
|
// 写 PID 文件(供 start.bat stop / Agent 升级流程强杀使用)
|
||||||
try {
|
try {
|
||||||
File dir = new File("pid");
|
File dir = new File("pid");
|
||||||
@@ -58,7 +49,7 @@ public class HospitalFrontApp {
|
|||||||
new File("pid/hospital-front.pid").delete();
|
new File("pid/hospital-front.pid").delete();
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
System.out.println("[HospitalFront] 优雅停机中...");
|
log.info("优雅停机中...");
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.hospital.front.adapter;
|
|||||||
|
|
||||||
import org.noear.solon.Solon;
|
import org.noear.solon.Solon;
|
||||||
import org.noear.solon.annotation.Component;
|
import org.noear.solon.annotation.Component;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -17,6 +19,8 @@ import java.util.Set;
|
|||||||
@Component
|
@Component
|
||||||
public class HospitalRouter {
|
public class HospitalRouter {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(HospitalRouter.class);
|
||||||
|
|
||||||
/** 启动激活的医院编码(默认 jinghe) */
|
/** 启动激活的医院编码(默认 jinghe) */
|
||||||
private final String activeCode = Solon.cfg().get("hospital.active", "jinghe");
|
private final String activeCode = Solon.cfg().get("hospital.active", "jinghe");
|
||||||
|
|
||||||
@@ -24,7 +28,8 @@ public class HospitalRouter {
|
|||||||
private volatile Map<String, HospitalAdapter> map;
|
private volatile Map<String, HospitalAdapter> map;
|
||||||
|
|
||||||
public HospitalRouter() {
|
public HospitalRouter() {
|
||||||
System.out.println("[HospitalRouter] 启动激活医院:" + activeCode);
|
// 走 logback 落盘(服务方式运行时 System.out 进不了日志文件)
|
||||||
|
log.info("启动激活医院:{}", activeCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ logging:
|
|||||||
level:
|
level:
|
||||||
root: INFO
|
root: INFO
|
||||||
com.hospital.front: INFO
|
com.hospital.front: INFO
|
||||||
org.noear: WARN
|
org.noear: INFO
|
||||||
|
|
||||||
# ====================================
|
# ====================================
|
||||||
# Uptime-Kuma 监控(沿用原 hospitalmiddle 逻辑)
|
# Uptime-Kuma 监控(沿用原 hospitalmiddle 逻辑)
|
||||||
|
|||||||
Reference in New Issue
Block a user