有没有一种办法可以在log4j.properties设置动态日志文件的名称?

问题描述 投票:1回答:2

我在我的每个测试类的记录。我想要做的就是为每一个我的测试类的单独的日志文件。有没有一种方法,我可以在我的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");
selenium log4j2
2个回答
0
投票

尝试

appender.file.fileName=${sys:logDir}/${sys:logFile}.log 

然后在beforeClass方法做:

System.setProperty("logDir", "logs");
System.setProperty("logFile", "log");

0
投票

在配置您的@BeforeClass编程记录仪 - 设置新的appender。在@AterClass关闭文件

© www.soinside.com 2019 - 2024. All rights reserved.