`
Mybeautiful
  • 浏览: 294366 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

废话Log4j

阅读更多

      使用Log4j去管理日志多年了,基本每次都是按照前面项目中用过的代码Copy过来,也基本了解所有配置信息的意义。不过一直不明白为啥总要 Logger.getLogger(ClassName.class)去获取一个Logger, 主要是不明白为啥总要传个Class进去;因为随便传个什么字符串的结果貌似没有任何区别,但为何所有的例子都要搞个Class传进去?难道有什么深意不成?

 

      今天闲暇决定搞清楚这个问题,答案是不需要也无任何深意;就是Log4j支持多个Logger,每个Logger可以单独配置;而我们一般都直接配置log4j.rootLogger。就是配置了所有的Logger都使用同样的配置,故得到个啥Logger都可以做同样的事。这样看来,即便我们之需要一个Logger,就是只要配置rootLogger就可以,而我们总是“Logger.getLogger(ClassName.class)去获取一个Logger”,貌似会产生很多个Logger对象,而这些Logger总做同样的事,资源有些浪费。当然,以上担忧只是臆断,没有研究Log4j的源代码或相关文档。

 

      直到现在我才能说真的懂了Log4j,尽管熟练使用很多年。不要放过任何一个疑问,或许里面隐藏着一个天大的秘密。

0
5
分享到:
评论
3 楼 Mybeautiful 2011-11-18  
shaier 写道
楼主说的好像有不准确的地方,多个记录器的情况还是很多的,而且这样写好像不会产生多个logger的!

恩,确实如此..每个名字的logger只有一个,如果没有对应的,就直接返回rootLogger..
2 楼 shaier 2011-11-17  
楼主说的好像有不准确的地方,多个记录器的情况还是很多的,而且这样写好像不会产生多个logger的!
1 楼 ma 2011-07-26  
楼主果然废话啊,呵呵

相关推荐

Global site tag (gtag.js) - Google Analytics