我刚刚使用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
无效的原因。
答案 0 :(得分:1)
正如我在评论中指出的那样,事实证明它确实有效,但手册可能不正确。而不是Property Substitution所描述的com.domain.messages
,有效的只是messages
,例如<Property name="filename">${bundle:filedir:logs}standard.log</Property>
。将status=debug
添加到<Configuration>
最终帮助我解决了这个问题。
我不知道这是否有所不同,但我在PC上通过STS(localhost
)进行测试 - 生产网站的文档可能是正确的吗?不知道,因为我还没有进行生产部署,但是当我启动并运行它时,我会检查它。