我需要设置日志文件名称,如log-{ClassThatInvokesLogger}-{Data}
。是否可以在扩展FileAppender
中获取classname?本文How to create a new log file for each time the application runs说明了如何将时间戳数据添加到日志文件名中。但是如何从{ClassThatInvokesLogger}
课程中获取ExtendedFromFileAppender
?
该功能用于测试。我需要为每个测试创建一个新日志。
答案 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将是可访问的,可以在日志文件命名中使用。但是可能有更好的解决方案