我在项目中使用Log4j并尝试运行我的应用程序,但似乎找不到log4.properties文件。
这是我的Maven配置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>log4j.properties</include>
<include>hibernate.cfg.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<finalName>File-Name</finalName>
<archive>
<manifest>
<mainClass>my.main.class</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这就是我在代码中加载log4j.properties文件的方式。
PropertyConfigurator.configure("log4j.properties");
当我尝试运行应用程序时,出现以下错误:
log4j:ERROR无法读取配置文件[log4j.properties]。 java.io.FileNotFoundException:log4j.properties(没有此类文件或目录)
奇怪的是,如果我使用 mvn软件包打包我的应用程序并打开jar文件,则可以看到其中的log4j.properties文件。由于我在pom文件中声明了resources文件夹,所以我不明白这是怎么回事。
编辑:我要在项目中添加用于log4j的依赖项
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
log4j.properties文件位于src / main / resources文件夹内
答案 0 :(得分:0)
如果使用的是log4j 2.X,则配置不同。
答案 1 :(得分:0)
事实证明,这是引起错误的行
PropertyConfigurator.configure("log4j.properties");
显然,只要在maven中设置了<directory>/src/main/resource</directory>
并且资源文件夹中存在log4j.properties文件,我就可以直接使用Logger,而无需使用此行