Java EE项目中的Log4j2配置文件

时间:2019-02-23 20:13:17

标签: java tomcat jersey log4j2

我在Windows 10上运行的Maven中有一个基于Jersey Web服务的简单Eclipse Java-EE,该项目是从jersey-quickstart-webapp工件创建的。我正在尝试使用Log4j记录器,但找不到放置log4j2.xml文件的位置。我试图将其与源代码Java文件放在一起,但记录器抱怨找不到配置文件。保留配置文件的正确位置是什么?

2 个答案:

答案 0 :(得分:0)

根据docs,Log4j2将按以下顺序查找配置文件:

  
      
  1. Log4j将检查“ log4j.configurationFile”系统属性,如果设置了该属性,将尝试使用以下命令加载配置:   与文件扩展名匹配的ConfigurationFactory。
  2.   
  3. 如果未设置系统属性,则ConfigurationFactory属性将在类路径中查找log4j2-test.properties。
  4.   
  5. 如果未找到此类文件,则YAML ConfigurationFactory将在类路径中查找log4j2-test.yaml或log4j2-test.yml。
  6.   
  7. 如果未找到此类文件,则JSON ConfigurationFactory将在类路径中查找log4j2-test.json或log4j2-test.jsn。
  8.   
  9. 如果找不到这样的文件,XML ConfigurationFactory将在类路径中查找log4j2-test.xml。
  10.   
  11. 如果找不到测试文件,则ConfigurationFactory属性将在类路径中查找log4j2.properties。
  12.   
  13. 如果找不到属性文件,则YAML ConfigurationFactory将在服务器上查找log4j2.yaml或log4j2.yml。   类路径。
  14.   
  15. 如果无法找到YAML文件,则JSON ConfigurationFactory将在类路径上查找log4j2.json或log4j2.jsn。
  16.   
  17. 如果无法找到JSON文件,则XML ConfigurationFactory将尝试在类路径上找到log4j2.xml。
  18.   
  19. 如果找不到配置文件,将使用DefaultConfiguration。这将导致日志记录输出进入控制台。
  20.   

因此,您可以看到除(1)之外,所有人都在从classpath查找配置文件。在标准Maven项目中,/src/main/resources是类路径的根。因此可以将log4j2.xml放在/src/main/resources中。

否则,您必须通过log4j.configurationFile系统属性来明确指定配置文件:

-Dlog4j.configurationFile=path/to/log4j2.xml

答案 1 :(得分:0)

将其放入资源目录。通常,所有配置文件都保存在这里。