我使用log4j的程序是:
这是对的吗? 如果未定义初始化模块会发生什么?我在哪里可以放置“log4j.properties”文件,以便我根本不必调用propertyconfigurator.configure?如果那是不可能的,可以在每个使用记录器的方法中调用 PropertyConfigurator.configure(“path_to_file”)吗?
答案 0 :(得分:10)
如果你把它放在类路径中的某个地方,Log4J会自动加载它。它的典型位置是源(或资源)根目录。这样它也可以被复制到jar的根目录中(如果你从类文件中创建一个)。
具体细节取决于您使用的构建系统。例如。在Maven中,惯例是将其放在src/main/resources
。
答案 1 :(得分:3)
log4j的默认初始化过程记录在log4j教程的this section中。这详细解释了log4j用于查找日志记录配置的步骤。
配置log4j的最简单方法是将属性文件放在允许类加载器使用名称“/log4j.properties”找到它的位置。您还可以使用其他方法,包括设置系统属性,以编程方式加载属性文件,甚至通过log4j API实例化Loggers,Appender等。 (不是后者是个好主意......)
(将log4j属性文件放在Maven项目的“src / main / resources”中只是将文件放入应用程序的类路径根目录的一种可能方法之一。)