log4j的默认加载过程

在没有知道log4j配置文件的情况下,也能打印日志,这是因为log4j在调用Logger.getLogger时,就会自动去classpath下面找配置文件的。具体代码:

package com.coderdream.log4j;
import org.apache.log4j.Logger;
import org.apache.log4j.helpers.LogLog;
public class HelloLog4j {
    private static Logger logger;
    static{
        LogLog.setInternalDebugging(true);
        logger = Logger.getLogger(HelloLog4j.class);
    }	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
	    
		// System.out.println("This is println message.");
		// 记录debug级别的信�?
		logger.debug("This is debug message.");
		// 记录info级别的信�?
		logger.info("This is info message.");
		// 记录error级别的信�?
		logger.error("This is error message.");
	}
}


LogLog.setInternalDebugging(true); 打开这个开关,可以看到log4j内部的初始化日志。方便理解。


输出结果:

log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@126b249.log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@126b249 class loader.log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@126b249.log4j: Using URL [file:/D:/projs/java-test/bin/log4j.properties] for automatic log4j configuration.log4j: Reading configuration from URL file:/D:/projs/java-test/bin/log4j.propertieslog4j: Parsing for [root] with value=[debug,appender1].log4j: Level token is [debug].log4j: Category root set to DEBUGlog4j: Parsing appender named "appender1".log4j: Parsing layout options for "appender1".log4j: End of parsing for "appender1".log4j: Parsed "appender1" options.log4j: Finished configuring.[main] DEBUG com.coderdream.log4j.HelloLog4j - This is debug message.[main] INFO com.coderdream.log4j.HelloLog4j - This is info message.[main] ERROR com.coderdream.log4j.HelloLog4j - This is error message.

具体实现类:

___________ ______________

|LogManager|----->|OptionConverter |

参考:

log4j 简明手册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值