2

I need to create a log file for each test that runs. I was looking here and there and came up with this, but I am still getting this file: logFileName_IS_UNDEFINED.log where all log is stored but also I have new log files created, but they are empty.

What am I doing wrong?

Logback configuration

<?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>

Cucumber listener:

@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);
    }
}

Setted in lombock config

lombok.log.fieldIsStatic=false
Ann
  • 57
  • 3
  • 9

0 Answers0