Я использую log4j2 в веб-приложении и имею конфигурационный файл в своем доме пользователя. Я уточнял место в web.xml, как описано в documentation:log4j2 - URISyntaxException при указании пути к файлу конфигурации
<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, и я хочу использовать только один файл конфигурации для их конфигурации. И, конечно, в разных системах я хочу использовать разные конфигурации протоколирования.