log4j的配置文件不在classpath下面的初始化
log4j的默认的配置文件为Log4j.properties,但是,如果这个配置文件为了方便管理,而放在了项目的其他位置,或者是修改了配置文件的默认文件名,这个时候就可以使用指定log4j的配置文件的一种方式,
具体如下:
如果我的项目的文件管理如下图,也就是在编译完以后虽然是在classpath下,但是,log4j的配置文件不在默认指定的位置,
如果是web项目,则可以初始化log4j,代码片段如下:
public void init() throws ServletException {
String path = getServletContext().getRealPath("/");
String file = getInitParameter("log4j").replace(File.separatorChar, '/');
if (file != null) {
PropertyConfigurator.configure(path + file);
}
}
当然,这只是基于servlet的,如果只是一个普通的class,则初始化也大同小异,无非就是拿到log4j的配置文件的所在位置而已,然后再
PropertyConfigurator.configure(log4jConfigerFilePath);
这样,log4j就能够找到配置文件所在位置了。