log4j2 - 从属性问题设置文件路径

时间:2016-02-13 22:27:21

标签: java spring log4j2

我刚刚使用xml配置文件从log4j转换为log4j2。一切正常,除了我似乎无法使用属性文件设置我的日志文件的路径。

这是一个Spring MVC应用程序,我在filedirs.properties文件夹中有一个src/main/resources文件以及log4j2.xml,i18n消息和其他属性文件。它有一个简单的条目:logs=G:/web/logs/。我已经查看了其他帖子,我只是没有得到如何正确配置log4j2。这就是我所拥有的:

<Configuration>
<Properties>
    <Property name="filename">${bundle:net.myapp.filedirs:logs}standard.log</Property>
</Properties>
<File name="stdLog" fileName="${filename}" ignoreExceptions="false">
    <PatternLayout pattern="%d{DEFAULT} %-5p: %c - %m%n"/>
</File>
...rest of config...

错误是这样的:

ERROR FileManager (${bundle:net.myapp.filedir:logs}standard.log) java.io.FileNotFoundException:

替换实际路径,例如,

<Property name="filename">g:/web/logs/standard.log</Property>

我挂了捆绑语法的正确域名部分 - myapp.net不是真正的网站,但它足够相似。我已经尝试了几十种变体,但在调试模式下,java.util.ResourceBundle在进行log4j2初始化时从未找到该文件属性文件。手动示例为com.domain.messages,因此我很难理解net.myapp.filedirs无效的原因。

1 个答案:

答案 0 :(得分:1)

正如我在评论中指出的那样,事实证明它确实有效,但手册可能不正确。而不是Property Substitution所描述的com.domain.messages,有效的只是messages,例如<Property name="filename">${bundle:filedir:logs}standard.log</Property>。将status=debug添加到<Configuration>最终帮助我解决了这个问题。

我不知道这是否有所不同,但我在PC上通过STS(localhost)进行测试 - 生产网站的文档可能是正确的吗?不知道,因为我还没有进行生产部署,但是当我启动并运行它时,我会检查它。