java中使用log4j如何不用每次調(diào)用都聲明一下?
問(wèn)題描述
每次寫個(gè)新的類,就要在下面聲明下:
private static Logger logger = Logger.getLogger(Test.class);
這樣的話不是很麻煩嗎?有沒(méi)有什么辦法,把Logger設(shè)置成可以靜態(tài)調(diào)用的類,直接調(diào)用info,error等方法,同時(shí)還可以打印出當(dāng)前類、線程號(hào)等信息?
問(wèn)題解答
回答1:你大可以簡(jiǎn)單封裝一下實(shí)現(xiàn)你要的目的,比如建個(gè)類把Logger封裝進(jìn)去,暴露幾個(gè)靜態(tài)接口出來(lái)。至于為什么很多代碼書寫的時(shí)候?qū)懗蓀rivate static Logger logger = Logger.getLogger(Test.class);,其實(shí)主要是為了提高日志的靈活性、準(zhǔn)確性等。
回答2:看看這個(gè) /a/11...
回答3:聲明log是因?yàn)樗梢远x不同的logger name可以通過(guò)logger name定制自己的輸出方式, 比如level, appender...等
如果你的日志是以相同的方式處理那你完全可以聲明公共的靜態(tài) log 對(duì)象, 需要的地方使用該log也不存在重復(fù)聲明的情況了.如:
import static xxx.GlobalLogs.log;log.debug('...');log.info('...');//...
當(dāng)然你還可以使用 lombok 的方式來(lái)簡(jiǎn)化你的代碼.
相關(guān)文章:
1. 如何解決docker宿主機(jī)無(wú)法訪問(wèn)容器中的服務(wù)?2. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????3. require后不用使用echo返回到微信服務(wù)器 嗎4. nginx - 如何將wordpress系統(tǒng)放在二級(jí)域名下5. javascript - 請(qǐng)問(wèn)要如何修改 Node 的透明度嗎?6. javascript - 求助,nodeJS和koa2文檔對(duì)新手小白太不友好,一臉懵逼。。。7. css3 background顯示圖片的一部分8. vim中編輯HTML文件時(shí)換行不能縮進(jìn)9. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)10. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫(kù)
