我在Windows 10上运行的Maven
中有一个基于Jersey
Web服务的简单Eclipse
Java-EE,该项目是从jersey-quickstart-webapp
工件创建的。我正在尝试使用Log4j
记录器,但找不到放置log4j2.xml
文件的位置。我试图将其与源代码Java文件放在一起,但记录器抱怨找不到配置文件。保留配置文件的正确位置是什么?
答案 0 :(得分:0)
根据docs,Log4j2将按以下顺序查找配置文件:
- Log4j将检查“ log4j.configurationFile”系统属性,如果设置了该属性,将尝试使用以下命令加载配置: 与文件扩展名匹配的ConfigurationFactory。
- 如果未设置系统属性,则ConfigurationFactory属性将在类路径中查找log4j2-test.properties。
- 如果未找到此类文件,则YAML ConfigurationFactory将在类路径中查找log4j2-test.yaml或log4j2-test.yml。
- 如果未找到此类文件,则JSON ConfigurationFactory将在类路径中查找log4j2-test.json或log4j2-test.jsn。
- 如果找不到这样的文件,XML ConfigurationFactory将在类路径中查找log4j2-test.xml。
- 如果找不到测试文件,则ConfigurationFactory属性将在类路径中查找log4j2.properties。
- 如果找不到属性文件,则YAML ConfigurationFactory将在服务器上查找log4j2.yaml或log4j2.yml。 类路径。
- 如果无法找到YAML文件,则JSON ConfigurationFactory将在类路径上查找log4j2.json或log4j2.jsn。
- 如果无法找到JSON文件,则XML ConfigurationFactory将尝试在类路径上找到log4j2.xml。
- 如果找不到配置文件,将使用DefaultConfiguration。这将导致日志记录输出进入控制台。
因此,您可以看到除(1)之外,所有人都在从classpath查找配置文件。在标准Maven项目中,/src/main/resources
是类路径的根。因此可以将log4j2.xml
放在/src/main/resources
中。
否则,您必须通过log4j.configurationFile
系统属性来明确指定配置文件:
-Dlog4j.configurationFile=path/to/log4j2.xml
答案 1 :(得分:0)
将其放入资源目录。通常,所有配置文件都保存在这里。