java中使用log4j如何不用每次調(diào)用都聲明一下?
問題描述
每次寫個新的類,就要在下面聲明下:
private static Logger logger = Logger.getLogger(Test.class);
這樣的話不是很麻煩嗎?有沒有什么辦法,把Logger設置成可以靜態(tài)調(diào)用的類,直接調(diào)用info,error等方法,同時還可以打印出當前類、線程號等信息?
問題解答
回答1:你大可以簡單封裝一下實現(xiàn)你要的目的,比如建個類把Logger封裝進去,暴露幾個靜態(tài)接口出來。至于為什么很多代碼書寫的時候?qū)懗蓀rivate static Logger logger = Logger.getLogger(Test.class);,其實主要是為了提高日志的靈活性、準確性等。
回答2:看看這個 /a/11...
回答3:聲明log是因為他可以定義不同的logger name可以通過logger name定制自己的輸出方式, 比如level, appender...等
如果你的日志是以相同的方式處理那你完全可以聲明公共的靜態(tài) log 對象, 需要的地方使用該log也不存在重復聲明的情況了.如:
import static xxx.GlobalLogs.log;log.debug('...');log.info('...');//...
當然你還可以使用 lombok 的方式來簡化你的代碼.
相關(guān)文章:
1. javascript - jquery選擇的dom元素如何更新?2. 視頻 - html5 video的autoplay 在智能手機上不運作?3. javascript - H5頁面無縫輪播4. python - Django問題 ’WSGIRequest’ object has no attribute ’user’5. mysql輸入賬號密碼后跳出一大堆內(nèi)容后但卻進不了mysql?6. javascript - nodejs中使用request庫怎么抓取網(wǎng)頁中的圖片7. mysql服務無法啟動1067錯誤,誰知道正確的解決方法?8. .......9. 數(shù)據(jù)庫 - mysql boolean型無法插入true10. python - flask jinjia2 中怎么定義嵌套變量
