在项目中找不到log4j.properties文件

时间:2020-10-04 11:03:14

标签: java maven log4j

我在项目中使用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文件夹内

enter image description here

2 个答案:

答案 0 :(得分:0)

如果使用的是log4j 2.X,则配置不同。

答案 1 :(得分:0)

事实证明,这是引起错误的行

PropertyConfigurator.configure("log4j.properties");

显然,只要在maven中设置了<directory>/src/main/resource</directory> 并且资源文件夹中存在log4j.properties文件,我就可以直接使用Logger,而无需使用此行