log4j(1.2.17版本) 加载配置文件
2013-03-22 17:24
190 查看
log4j 一般初始化logger都是这样:Logger logger = Logger.getLogger(Log4jTest.class); 红色部分是类名,这个类名可以是任何已存在类的类名,并且这个类名与我们需要打log的类没有关系。举个栗子:
若需要将这两种不同的log写到不同文件,只需要在log4j.properties中进行配置就可,不单独进行配置的话,打在默认文件中(可参考:http://hjh5885900.iteye.com/blog/1405453)。
那么,log4j是什么时候加载log4j.properties的?当然,肯定是在初始化的时候,就上面的例子来说,只能是在Logger aLogger = Logger.getLogger(A.class);的时候。debug代码,发现LogManager.getLogger(clazz.getName());然后跟进代码到LogManager中,找到一个static代码块。另外,缺省的文件名有两个:log4j.properties和log4j.xml。对于log4j.properties有一个注释:@deprecated
This variable is for internal use only. It will become package protected in future versions. 总之可以用。
在static块中,先把配置文件loader成url = Loader.getResource(DEFAULT_CONFIGURATION_FILE);然后config:OptionConverter.selectAndConfigure(url,
configuratorClassName,LogManager.getLoggerRepository()); 就方法名而言,就是选择和配置。在这个方法中先初始化configurator,有个说明Implemented
by classes capable of configuring log4j using a URL。然后configurator.doConfigure(url, hierarchy);使用的是PropertyConfigurator这个类实现的方法,然后开始加载配置项。
大概就是这样了,菜鸟的第一篇学习笔记,望大家指点。
class A { // 空类 } class B { // 空类 } class Test { Logger aLogger = Logger.getLogger(A.class); Logger bLogger = Logger.getLogger(B.class); void doLog() { aLogger.info("a"); bLogger.info("b"); } }
若需要将这两种不同的log写到不同文件,只需要在log4j.properties中进行配置就可,不单独进行配置的话,打在默认文件中(可参考:http://hjh5885900.iteye.com/blog/1405453)。
那么,log4j是什么时候加载log4j.properties的?当然,肯定是在初始化的时候,就上面的例子来说,只能是在Logger aLogger = Logger.getLogger(A.class);的时候。debug代码,发现LogManager.getLogger(clazz.getName());然后跟进代码到LogManager中,找到一个static代码块。另外,缺省的文件名有两个:log4j.properties和log4j.xml。对于log4j.properties有一个注释:@deprecated
This variable is for internal use only. It will become package protected in future versions. 总之可以用。
在static块中,先把配置文件loader成url = Loader.getResource(DEFAULT_CONFIGURATION_FILE);然后config:OptionConverter.selectAndConfigure(url,
configuratorClassName,LogManager.getLoggerRepository()); 就方法名而言,就是选择和配置。在这个方法中先初始化configurator,有个说明Implemented
by classes capable of configuring log4j using a URL。然后configurator.doConfigure(url, hierarchy);使用的是PropertyConfigurator这个类实现的方法,然后开始加载配置项。
大概就是这样了,菜鸟的第一篇学习笔记,望大家指点。
相关文章推荐
- log4j的2.6.2版本properties配置文件的使用举例
- java instrment手工加载log4j配置文件
- log4j的使用与java中properties配置文件加载
- log4j配置文件加载方式
- Spring如何加载log4j配置文件
- Log4j配置文件解析以及加载自己的配置文件
- 程序自定义加载log4j配置文件
- log4j配置文件详解及手动加载的方式
- Log4j配置文件解析以及加载自己的配置文件
- WEB系统启动时加载Log4j的配置文件
- log4j配置文件加载
- 非web环境log4j配置文件加载路径
- log4j 2.0以后版本的配置文件命名规则
- log4j配置文件的加载问题
- log4j配置文件加载方式
- SpringJUnit4ClassRunner 加载log4j配置文件
- Log4j 学习日记 - 手工加载配置文件
- Log4j配置文件解析以及加载自己的配置文件
- WEB系统启动时加载Log4j的配置文件(自己写Listener形式)
- log4j加载自定义的日志的配置文件