我尝试使用PropertyConfigurator.configure("log4j.properties")
方法加载log4j的配置,但我一直在运行java.io.FileNotFoundException
。
我关注this question并将log4j.properties
文件放入resources
文件夹。
我还编辑了我的pom.xml:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<targetPath>${project.build.directory}</targetPath>
<includes>
<include>log4j.properties</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>src.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
因此,当我运行mvn package
时,生成的目标文件夹并排包含我的.jar和我的log4j.properties,但是当我运行我的jar时,我发现文件未找到异常。
如何解决此问题?
答案 0 :(得分:0)
注意: 请不要将log4j.properties包含到最终的Jar文件中,它会在类路径中导致多个log4j.properties文件,如果有人依赖你的Jar,你可能会意外地覆盖他们的日志配置,取决于首先加载哪个Jar。
供参考: https://www.mkyong.com/maven/maven-exclude-log4j-properties-in-jar-file/