我需要设置日志文件名,如log-{ClassThatInvokesLogger}-{Data}
. 是否可以在扩展中获取类名FileAppender
?这篇文章如何为每次应用程序运行创建一个新的日志文件说明了如何将时间戳数据添加到日志文件名中。但是如何{ClassThatInvokesLogger}
从ExtendedFromFileAppender
课堂上获得?
该功能用于测试。我需要为每个测试创建一个新日志。
我需要设置日志文件名,如log-{ClassThatInvokesLogger}-{Data}
. 是否可以在扩展中获取类名FileAppender
?这篇文章如何为每次应用程序运行创建一个新的日志文件说明了如何将时间戳数据添加到日志文件名中。但是如何{ClassThatInvokesLogger}
从ExtendedFromFileAppender
课堂上获得?
该功能用于测试。我需要为每个测试创建一个新日志。
this.getClass().getName()
将检索当前对象的类名。
我找到了解决此问题的方法。MyFileAppender 类应具有以下内容
String fileName = logFile.getName() + System.getProperty("InvokingClassName");
同时调用记录器的测试应该有这样的东西
@BeforeClass
public static void loggerInicialization(){
System.setProperty("InvokingClassName", "MyInvokingClassName");
logger = Logger.getLogger(MyInvokingClassName.class);
}
在这种情况下,InvokingClassName 将是可访问的,并可用于日志文件命名。但是可能有更好的解决方案