我的应用程序将一些文件输出到动态创建的目录,每次运行时都会使用System.currentTimeMillis()确定的名称。
尝试了以下解决方案:
<File name="File" fileName=".\xxx\${sys:log4j2.saveDirectory}\test.log" immediateFlush="false" append="false">\
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
在java代码中我打电话:
String path = Long.toString(System.currentTimeMillis());
System.setProperty("log4j2.saveDirectory", path);
但这不起作用,因为我得到 FileNotFoundException
。什么方法告诉log4j2登录这种动态创建的文件夹?
答案 0 :(得分:0)
问题解决了。我在打电话
System.setProperty("log4j2.saveDirectory", path);
记录器初始化后。解决方案是在初始化记录器或设置默认路径之前执行此操作。