소스 검색

update MyLogbackAppender

reghao 4 달 전
부모
커밋
7583a5d290

+ 29 - 13
web/src/main/java/cn/reghao/bnt/web/config/log/MyLogbackAppender.java

@@ -4,20 +4,13 @@ import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.core.Layout;
 import ch.qos.logback.core.UnsynchronizedAppenderBase;
 import cn.reghao.bnt.web.admin.service.LogService;
-import cn.reghao.jutil.jdk.http.HeaderNames;
 import cn.reghao.jutil.web.ServletUtil;
 import cn.reghao.jutil.jdk.web.log.AppLog;
-import lombok.Getter;
-import lombok.Setter;
-
-import jakarta.servlet.http.HttpServletRequest;
 
 /**
  * @author reghao
  * @date 2025-10-04 15:09:59
  */
-@Getter
-@Setter
 public class MyLogbackAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
     // 自定义参数
     private String printAppenderName;
@@ -27,18 +20,46 @@ public class MyLogbackAppender extends UnsynchronizedAppenderBase<ILoggingEvent>
     private String env;
     private LogService logService;
 
+    public void setPrintAppenderName(String printAppenderName) {
+        this.printAppenderName = printAppenderName;
+    }
+
+    public String getPrintAppenderName() {
+        return printAppenderName;
+    }
+
+    public void setLayout(Layout<ILoggingEvent> layout) {
+        this.layout = layout;
+    }
+
+    public Layout<ILoggingEvent> getLayout() {
+        return layout;
+    }
+
     public void setApp(String app) {
         this.app = app;
     }
 
+    public String getApp() {
+        return app;
+    }
+
     public void setHost(String host) {
         this.host = host;
     }
 
+    public String getHost() {
+        return host;
+    }
+
     public void setEnv(String env) {
         this.env = env;
     }
 
+    public String getEnv() {
+        return env;
+    }
+
     public void setLogService(LogService logService) {
         this.logService = logService;
     }
@@ -86,12 +107,7 @@ public class MyLogbackAppender extends UnsynchronizedAppenderBase<ILoggingEvent>
     }
 
     private AppLog getAppLog(ILoggingEvent event) {
-        String requestId = "NoneRequestId";
-        HttpServletRequest request = ServletUtil.getRequest();
-        if (request != null) {
-            requestId = (String) request.getAttribute(HeaderNames.XRequestId);
-        }
-
+        String requestId = ServletUtil.getRequestId0();
         long timestamp = event.getTimeStamp();
         String level = event.getLevel().toString();
         String thread = event.getThreadName();

+ 2 - 9
web/src/main/java/cn/reghao/bnt/web/config/spring/SpringLifecycle.java

@@ -141,27 +141,20 @@ public class SpringLifecycle implements ApplicationRunner, DisposableBean, Servl
 
     private void initLogger() {
         String env = environment.getActiveProfiles()[0];
-
         LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
         Logger rootLogger = loggerContext.getLogger("ROOT");
-        rootLogger.iteratorForAppenders().forEachRemaining(appender -> {
-            log.info("appender -> {}", appender.getName());
-        });
-
         Appender<ILoggingEvent> appender = rootLogger.getAppender("myLogbackAppender");
-        if (appender instanceof MyLogbackAppender) {
+        if (appender instanceof MyLogbackAppender myLogbackAppender) {
             MachineId machineId = new MachineIdLinux();
             String app = environment.getProperty("spring.application.name");
             String host = machineId.ipv4();
 
-            MyLogbackAppender myLogbackAppender = (MyLogbackAppender) appender;
-            myLogbackAppender.stop();
             myLogbackAppender.setApp(app);
             myLogbackAppender.setHost(host);
             myLogbackAppender.setEnv(env);
             myLogbackAppender.setLogService(logService);
             myLogbackAppender.start();
+            log.info("bnt use MyLogbackAppender...");
         }
-        log.info("bnt use MyLogbackAppender...");
     }
 }