如果log4j.properties/xml 不在ClassPath 下,则会出现如下的错误:
log4j:WARN No appenders could be found for logger (xxxxx).
log4j:WARN Please initialize the log4j system properly.
所以需要把配置文件放在类路径下。因为Log4j的LogManager类在静态初始化的时候,会从当前线程的类路径中找配置文件。
在eclipse中,我们常常会放在src目录下,这样就会编译到bin目录中,运行时就会被load到类路径中。
如果,我们不想把一个配置文件挂在src下,而是放在一个单独的conf目录下,那么我们可以通过写一个classloader来保证我们可以找到这个文件。具体目录:
我们可以写一个URLClassLoader 并把它的URL 设置为指向Conf目录,它的parent为当前的应用程序ClassLoader,并把它设置为当前线程的ClassLoader。
private static void initClassLoader() {
try {
File dir = new File(ServerProperties.getConfigUrl());
URL url = dir.toURI().toURL();
appLoader = new URLClassLoader(new URL[]{url},Startup.class.getClassLoader());
} catch(MalformedURLException urle) {
urle.printStackTrace();
}
}
Thread.currentThread().setContextClassLoader(appLoader);
这一切都必须在第一次声明一个Log对象之前完成。 Log的配置信息只在第一次使用LogManager的时候被设置。
- 大小: 4 KB
分享到:
相关推荐
完整的log4j配置文件
log4j配置文件例子,可以让你轻松配置log4j
log4及配置文件 有log4j文件 log4及配置文件 有log4j文件 log4及配置文件 有log4j文件
标准log4j配置文件模板, 可自行下载参照
这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。 方法二、 可以使用服务器环境变量 log4j的配置文件支持服务器的vm的...
一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件一个比较全的的log4j配置文件
配置SSH框架时关于Log4j的配置文件
Log4J 全能配置文件详细大全。跟踪调试程序 非常方便呀
log4j配置文件说明,让你轻松配置日志文件
log4j.properties配置文件
log4j配置文件以及配置文件说明 包里有一个log4j配置文件 和一个配置详解
log4j2配置,文件分割,自动清除等相关配置。
内包含log4j所依赖的jar包,以及log4j配置文件!!!!
十分宝贵的mybatis配置文件,包含最新的mybatis配置文件,以及mybatis开发文档,Log4j测试开发日志文件
spring log4j配置文件资料 spring log4j配置文件资料 spring log4j配置文件资料
log4j的配置文件,用于SSM框架的配置文件,打印日志相关
Log4j配置文件解析以及加载自己的配置文件.doc
Spring4.3.7的log4j以及配置文件Spring4.3.7的log4j以及配置文件Spring4.3.7的log4j以及配置文件
log4j配置文件,可以直接拿来用噢。log4j配置文件,可以直接拿来用噢。