Log4j2 - 记录到动态创建的目录

时间:2016-08-01 07:52:59

标签: java logging log4j2

我的应用程序将一些文件输出到动态创建的目录,每次运行时都会使用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登录这种动态创建的文件夹?

1 个答案:

答案 0 :(得分:0)

问题解决了。我在打电话

System.setProperty("log4j2.saveDirectory", path);
记录器初始化后

。解决方案是在初始化记录器或设置默认路径之前执行此操作。