diff --git a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/log/FileUploadLogAppender.java b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/log/FileUploadLogAppender.java index f37b758..3958706 100644 --- a/ccdi-project/src/main/java/com/ruoyi/ccdi/project/log/FileUploadLogAppender.java +++ b/ccdi-project/src/main/java/com/ruoyi/ccdi/project/log/FileUploadLogAppender.java @@ -1,21 +1,20 @@ package com.ruoyi.ccdi.project.log; +import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.PatternLayout; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.FileAppender; import ch.qos.logback.core.UnsynchronizedAppenderBase; import lombok.extern.slf4j.Slf4j; +import org.slf4j.ILoggerFactory; +import org.slf4j.LoggerFactory; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; /** - * 文件上传批次日志Appender - * 为每个批次创建独立的日志文件 - * - * @author ruoyi - * @date 2026-03-05 + * File upload batch log appender. */ @Slf4j public class FileUploadLogAppender extends UnsynchronizedAppenderBase { @@ -26,10 +25,12 @@ public class FileUploadLogAppender extends UnsynchronizedAppenderBase appender = new FileAppender<>(); + appender.setContext(loggerContext); appender.setFile(logFilePath); PatternLayout layout = new PatternLayout(); layout.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"); - layout.setContext(appender.getContext()); + layout.setContext(loggerContext); layout.start(); appender.setLayout(layout); appender.setAppend(true); - appender.setContext(appender.getContext()); appender.start(); currentAppender.set(appender); - log.info("【文件上传日志】创建批次日志文件: path={}, batchId={}", logFilePath, batchId); - + log.info("【文件上传日志】创建批次日志文件成功: path={}, batchId={}", logFilePath, batchId); } catch (Exception e) { log.error("【文件上传日志】创建批次日志文件失败: projectId={}, batchId={}", projectId, batchId, e); } } /** - * 关闭当前批次的日志文件 + * Close the current batch log file. */ public static void closeBatchLogFile() { FileAppender appender = currentAppender.get(); @@ -100,4 +99,12 @@ public class FileUploadLogAppender extends UnsynchronizedAppenderBase appender = currentAppender(); + + assertNotNull(appender); + assertNotNull(appender.getContext()); + assertTrue(appender.isStarted()); + } + + @SuppressWarnings("unchecked") + private FileAppender currentAppender() throws Exception { + Field field = FileUploadLogAppender.class.getDeclaredField("currentAppender"); + field.setAccessible(true); + ThreadLocal> threadLocal = + (ThreadLocal>) field.get(null); + return threadLocal.get(); + } +}