发表于: 2017-10-16 22:57:07

1 744



今天做的事情:


                  使用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()) {
                                               logger.info("User " + userId + " is using app " + appId);

                                    }


                  4. debug、info、error等输出log的方法是线程安全的。


                  5. log有风险,输出需谨慎!由于输出log过程需要进行磁盘操作,且log4j为了保证log输出过程的线程安全性而使用同步锁,就使得输出log成为很耗时的操作,所以log信息一定要言简意赅,不要输出一些无用的log。



                  

  


                       


                     以下是一个配置spring的小demo


               



                    


遇到问题:


                    找不到指定的配置文件





收获:


                更加了解打印日志的配置。









返回列表 返回列表
评论

    分享到