发表于: 2017-10-16 22:57:07
1 745
今天做的事情:
使用log4j打印日志。
1.获取Logger实例的方法:
Protexted static final Logger logger = Logger.getLogger("logger_name");
或者
private static final Logger = Logger.getLogger("logger_name);
还有一个获取Logger的方法: Logger.getLogger(Class clazz);
备注:加static是因为同一个logger name 对应唯一的Logger实例,而Logger.getLogger方法再从logger容器中去取logger的过程,因为一个步骤加了同步锁,有可能造成堵塞,所以需要static保证需要用Logger的类所有对象共享一个Logger引用。
而加final是为了避免在使用logger中不小心被赋值。
2. logger的6个级别,按优先级从低到高分别是:
trace < debug < info < warn < error < fatal
分别对应6个方法输出,而经常使用debug,info,error这三个。运行时的log输出级别可以通过更改log4j配置文件来进行配置,就免去了注释掉debug代码的尴尬。
3. 输出log的正确方式:
- if (logger.isInfoEnabled()) {
}
4. debug、info、error等输出log的方法是线程安全的。
5. log有风险,输出需谨慎!由于输出log过程需要进行磁盘操作,且log4j为了保证log输出过程的线程安全性而使用同步锁,就使得输出log成为很耗时的操作,所以log信息一定要言简意赅,不要输出一些无用的log。
以下是一个配置spring的小demo
遇到问题:
找不到指定的配置文件
收获:
更加了解打印日志的配置。
评论