如何生成名为log- {ClassThatInvokesLogger} - {Data}的日志?

时间:2013-08-16 14:00:44

标签: java log4

我需要设置日志文件名称,如log-{ClassThatInvokesLogger}-{Data}。是否可以在扩展FileAppender中获取classname?本文How to create a new log file for each time the application runs说明了如何将时间戳数据添加到日志文件名中。但是如何从{ClassThatInvokesLogger}课程中获取ExtendedFromFileAppender

该功能用于测试。我需要为每个测试创建一个新日志。

2 个答案:

答案 0 :(得分:0)

this.getClass().getName()

将检索当前对象的类的名称。

答案 1 :(得分:0)

我找到了这个问题的工人。 MyFileAppender类应具有以下内容

String fileName = logFile.getName() + System.getProperty("InvokingClassName");

同时调用记录器的测试应具有类似的内容

@BeforeClass public static void loggerInicialization(){ System.setProperty("InvokingClassName", "MyInvokingClassName"); logger = Logger.getLogger(MyInvokingClassName.class); }

在这种情况下,InvokingClassName将是可访问的,可以在日志文件命名中使用。但是可能有更好的解决方案