java maven在哪里搜索log4j.properties文件?

myss37ts  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(164)

我在Maven中使用log4j时遇到了一些问题。我有一个属性文件,即log4j.properties,我把这个文件放在了项目的pom.xml存储的同一个路径上。

聚合物.xml

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <scope>test</scope>
</dependency>

我在test文件夹下的代码中使用了log4j。

代码

package com.example.automationtest;

import org.apache.log4j.*;
import org.junit.Test;

public class AppTest {
    @Test
    public void testLogger(){
   //PropertyConfigurator.configure("C:\\Users\\Desktop\\AutomationTest\\log4j.properties");
    Logger log = Logger.getLogger("exampleLogger");
    log.debug("Hello, World!");
   }
}

我想知道,maven如何识别log4j.properties文件的位置?
在上面的场景中,如果我运行命令mvn test,它会给出警告,请查看下面的屏幕截图以获取警告消息。

因此,作为一种变通方法,我在代码中提供了www.example.com的完整路径log4j.properties。我使用了以下行:

PropertyConfigurator.configure("C:\\Users\\Desktop\\AutomationTest\\log4j.properties")

是否有必要使用上面的代码行,或者是否有任何特定的目录,maven在其中查找log4j.properties文件?

u7up0aaq

u7up0aaq1#

该文件需要进入src/main/resources/src/test/resources/(如果您只需要它进行单元测试)。
详细解释:Maven将Java类路径拆分为源代码和资源(非Java的东西,如属性文件,图像等)。主要原因是Maven可以为您过滤资源,并且为了更加安全,他们将资源放在与源代码不同的文件夹中。

6tqwzwtp

6tqwzwtp2#

有很多答案与流行的解决方案src/main/resourcessrc/test/resources有关,但通常log4j.properties在应用程序中没有www.example.com可能会很有用。(应用程序服务器、过渡环境等)来配置所需的日志记录。因此,我建议您在决定是否将log4j.properties包含在maven程序集中时,对部署的细节要谨慎。
参考:If using maven, usually you put log4j.properties under java or resources?

相关问题