我正在使用 maven 程序集插件创建一个 uber jar。我的程序的依赖项之一是一个应用程序,它既可以通过线程在我的程序内部启动,也可以独立启动,因为它是它自己的 uberjar。
我的问题是两个应用程序都使用 log4j2 并且在资源文件夹中都有一个 log4j2.xml。当 maven 使我的应用程序成为 uberjar 时,它会用依赖项中的配置文件覆盖我的应用程序 log4j.xml 配置文件。有没有办法解决这个问题,同时仍然允许两个应用程序在资源文件夹中都有配置文件?
我正在使用 maven 程序集插件创建一个 uber jar。我的程序的依赖项之一是一个应用程序,它既可以通过线程在我的程序内部启动,也可以独立启动,因为它是它自己的 uberjar。
我的问题是两个应用程序都使用 log4j2 并且在资源文件夹中都有一个 log4j2.xml。当 maven 使我的应用程序成为 uberjar 时,它会用依赖项中的配置文件覆盖我的应用程序 log4j.xml 配置文件。有没有办法解决这个问题,同时仍然允许两个应用程序在资源文件夹中都有配置文件?
当 Log4j 启动时,它将按照从高到低的加权顺序定位配置:
所以最简单的方法是将 log4j.xml 移动到资源目录中的子文件夹,并使用属性“log4j.configurationFile”定义这个。否则只需切换到属性基础配置文件“log4j2.properties”。也许这个转换器可以帮助你。
还请查看文档(这就是我从中获得此列表的地方)。