現(xiàn)在很多開源項(xiàng)目在使用LOG的時(shí)候做了不好的示范--在基類中實(shí)例化的方式使用LOG,而不是靜態(tài)變量。
例如:
class Base {
private final Log LOG = LogFactory.getLog(this.getClass());
}
class Derived {
public void foo() {
if (LOG.isDebugEnabled()) LOG.debug("foo");
}
}
這種用法,當(dāng)類被繼承的時(shí)候,LOG就完全亂了。spring、struts都有這樣的問題。
正確的使用方式應(yīng)該是直接靜態(tài)化聲明LOG。
例如:
class DerivedA {
private final static Log LOG = LogFactory.getLog(DerivedA.class);
}
--------------------------
盛大招聘.Net開發(fā)工程師
經(jīng)典好書:.NET框架程序設(shè)計(jì)(修訂版)
新聞:
2008年最精彩科技圖片:電流運(yùn)動(dòng)模擬圖居首
導(dǎo)航:
博客園首頁 知識(shí)庫 新聞 招聘 社區(qū) 小組 博問 網(wǎng)摘 找找看
文章來源:
http://www.cnblogs.com/jobs/archive/2009/01/05/1368894.html