使用log4j以编程方式创建不同的日志文件

Ale*_*xis 13 java log4j

我有一个自动化集成测试工具,并希望简化日志记录(使用log4j实现)

我有许多高级测试,每个都有一个id,每个测试需要一个单独的日志文件.由于测试是随机创建的,因此直到运行时才知道ID.

因此,我想确保将每个高级测试中的日志记录写入该测试的日志文件中.

我不想创建自定义日志级别,也不想将日志记录发送到所有appender.

有谁知道这样做的方法?

ska*_*man 23

您可以通过编程方式轻松调用log4j的API,例如

FileAppender appender = new FileAppender();
// configure the appender here, with file location, etc
appender.activateOptions();

Logger logger = getRootLogger();
logger.addAppender(appender);
Run Code Online (Sandbox Code Playgroud)

所述logger可根记录器如在本例中,或向下树中的任何记录程序.您的单元测试可以在steup期间添加其自定义appender,并removeAppender()在拆卸期间删除appender(使用).