【问题标题】:Configure from a file with a preset name从具有预设名称的文件配置
【发布时间】:2017-05-08 19:49:13
【问题描述】:

Log4j2 在 CLASSPATH 中寻找配置文件。我不希望我的 Java 应用程序依赖于设置自定义 CLASSPATH 的启动脚本。虽然有些消息来源说默认 CLASSPATH 包含当前目录,但当我将 log4j2.xml 放在当前目录中时,它不会被拾取,并且我收到“找不到 log4j2 配置文件”消息。

所以我想从具有预设名称和位置的文件配置 Log4j2。 (或者只是给它一个预设位置,所以它会测试 log4j2-test.xml 然后 log4j2.xml - 这会更好)。

听起来很简单,在 log4j 1 中确实很简单。但不知何故,我在 Log4j2 文档中找不到类似的东西,它专注于复杂的用例,如自定义配置工厂。

我会很感激关于如何做到这一点的建议。

【问题讨论】:

    标签: java logging configuration log4j log4j2


    【解决方案1】:

    您可以使用此系统属性指定配置文件的完整路径:

    -Dlog4j.configurationFile=path/to/log4j2.xml
    

    另请参阅FAQ

    【讨论】:

    • 我现在已经尝试了System.setProperty("log4j.configurationfile", "./log4j2.xml");System.setProperty("log4j.configurationfile", "C:\\full\\path\\log4j2.xml"); 但我仍然收到关于无法找到配置文件的消息。当我添加System.setProperty("org.apache.logging.log4j.simplelog.StatusLogger.level","TRACE"); 时,我确实在控制台上获得了跟踪日志,因此 setProperty 机制有效。跟踪日志没有显示任何打开该文件的尝试。
    • 您拼错了该属性。使用大写 F(驼峰式)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多