温少的日志

我希望我所作的事情对别人有所帮助!
随笔 - 198, 文章 - 1, 评论 - 1111, 引用 - 11
数据加载中……

也说一种普遍错误使用的LOG方式

现在很多开源项目在使用LOG的时候做了不好的示范--在基类中实例化的方式使用LOG,而不是静态变量。

例如:

class Base  {
     private final static Log LOG = LogFactory.getLog(this.getClass());
}

class Derived  {
    public void foo() {
           if (LOG.isDebugEnabled()) LOG.debug("foo");
    }
}

这种用法,当类被继承的时候,LOG就完全乱了。spring、struts都有这样的问题。

正确的使用方式应该是直接静态化声明LOG。

例如:

class DerivedA  {
     private final static Log LOG = LogFactory.getLog(DerivedA.class);
}

0
0
(请您对文章做出评价)
« 上一篇:2008年总结
» 下一篇:获奖2008年金蝶集团优秀员工感言

posted on 2009-01-05 10:49 温少 阅读(2469) 评论(2)  编辑 收藏 网摘

评论

#1楼   回复  引用  查看    

为什么呢,不解
2009-01-05 13:41 | 挖沙啦      

#2楼[楼主]   回复  引用  查看    

@挖沙啦
在我博客的java分站上有详细的讨论
http://www.blogjava.net/jobs/archive/2009/01/05/249864.html
2009-01-05 14:50 | 温少