【问题标题】:Log4j2 - logging to dynamically created directoriesLog4j2 - 记录到动态创建的目录
【发布时间】:2016-08-01 07:52:59
【问题描述】:

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

【问题讨论】:

  • 能否查看尝试写入日志的目录是否存在/已创建?
  • 问题已解决,错过了在设置属性之前初始化记录器

标签: java logging log4j2


【解决方案1】:

问题解决了。我在打电话

System.setProperty("log4j2.saveDirectory", path);

在记录器初始化之后。解决方案是在初始化记录器或设置默认路径之前进行。

【讨论】:

    猜你喜欢
    • 2016-12-21
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多