使用已执行的测试用例名称为每个测试用例创建日志文件

问题描述

我需要为每个运行的测试创建一个日志文件。我四处寻找并想出了这个,但我仍然得到这个文件:logFileName_IS_UNDEFINED.log,其中存储了所有日志,但我也创建了新的日志文件,但它们是空的。

我做错了什么?

登录配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%-30(%d{HH:mm:ss.SSS} | %-5level | ) %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${logFileName}.log</file>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO" additivity="false">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>

黄瓜监听器:

@Slf4j
public class CustomTestListener implements ConcurrentEventListener {

    File logFile;

    //other code

    private void handleCaseStarted(TestCaseStarted t) {
        createLogFile(t.getTestCase().getName());
        log.info("[TEST STARTED]  " + t.getTestCase().getName());
    }

    private void createLogFile(String testCase){
        MDC.put("logFileName","head1");

        Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);

        FileAppender fileAppender = new FileAppender();
        logFile = new File(String.format("%s.log",testCase));

        LoggerContext loggerContext = rootLogger.getLoggerContext();
        loggerContext.putProperty("logFileName",testCase);

        fileAppender.setName(testCase);
        fileAppender.setFile(logFile.getAbsolutePath());
        fileAppender.setContext(loggerContext);
        fileAppender.setPrudent(true);
        fileAppender.start();
        rootLogger.addAppender(fileAppender);
    }
}

在 lombok 配置中设置

lombok.log.fieldIsStatic=false

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...