0

我在 Web 应用程序中使用 log4j2,并且在我的用户主页中有配置文件。如文档中所述,我已在 web.xml 中指定了位置:

<context-param>
    <param-name>log4jConfiguration</param-name>
    <param-value>file://${user.home}/someDirectory/log4j2.xml</param-value>
</context-param>

不幸的是,在 Windows 系统上,我得到了一个

java.net.URISyntaxException: Illegal character in authority at index 7: file://C:\Users\steinman/someDirectory/log4j2.xml
    at java.net.URI$Parser.fail(Unknown Source)
    at java.net.URI$Parser.parseAuthority(Unknown Source)
    at java.net.URI$Parser.parseHierarchical(Unknown Source)
    at java.net.URI$Parser.parse(Unknown Source)
    at java.net.URI.<init>(Unknown Source)
    at org.apache.logging.log4j.core.config.Configurator.initialize(Configurator.java:46)
    ...

因为反斜杠。文档在这里没有帮助,因为在示例中还有反斜杠,这是错误的。

有什么解决办法吗?

我无法使用斜杠对路径进行硬编码,因为该应用程序也将在其他系统上运行。

我不想将 log4j2.xml 放在应用程序中,因为实际上我有几个应用程序在 Tomcat 中运行,我只想使用一个配置文件来配置它们。当然,在不同的系统上,我想使用不同的日志记录配置。

4

1 回答 1

0

你可能发现了一个错误。您可以在 log4j2 问题跟踪器中为此(包括所有详细信息)开票吗?

https://issues.apache.org/jira/browse/LOG4J2

于 2013-09-21T02:09:16.590 回答