我在我的每个测试类的记录。我想要做的就是为每一个我的测试类的单独的日志文件。有没有一种方法,我可以在我的BeforeClass方法传递一个文件名log4j2.properties?我下面想,但它不工作:
这是我的log4j2.properties文件:
name=PropertiesConfig
property.myLogs
property.filename = logs
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/${myLogs}.log #I AM TRYING TO PASS DYNAMIC value in 'myLogs' variable.
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
rootLogger.level = trace
rootLogger.appenderRefs = stdout
rootLogger.appenderRefs = LOGFILE
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.stdout.ref = LOGFILE
试图设置在我BeforeMethod,但它不是生成日志文件“logs.log”中的“property.myLogs”:
Properties config = new Properties();
FileInputStream propertiesFile = new FileInputStream("D:\\Automation\\src\\main\\resources\\log4j2.properties");
config.load(propertiesFile);
System.setProperty("property.myLogs", "logs");
尝试
appender.file.fileName=${sys:logDir}/${sys:logFile}.log
然后在beforeClass方法做:
System.setProperty("logDir", "logs");
System.setProperty("logFile", "log");
在配置您的@BeforeClass编程记录仪 - 设置新的appender。在@AterClass关闭文件