每次寫個新的類,就要在下面聲明下:
private static Logger logger = Logger.getLogger(Test.class);
這樣的話不是很麻煩嗎?有沒有辦法,把Logger設定成可以靜態呼叫的類,直接呼叫info,error等方法,同時還可以列印出目前類別、線程號等資訊?
漂亮男人2017-05-17 10:06:39
你大可以簡單封裝一下實現你要的目的,例如建個類別把Logger封裝進去,暴露幾個靜態介面出來。至於為什麼很多程式碼書寫的時候寫成private static Logger logger = Logger.getLogger(Test.class);
,其實主要是為了提高日誌的彈性、準確度等。
漂亮男人2017-05-17 10:06:39
聲明log
是因为他可以定义不同的logger name
可以通过logger name
定制自己的输出方式, 比如level
, appender
...等
如果你的日誌是以相同的方式處理那你完全可以聲明公共的静态 log 对象
, 需要的地方使用该log
也不存在重複聲明的情況了.
如:
import static xxx.GlobalLogs.log;
log.debug("...");
log.info("...");
//...
當然你也可以用 lombok 的方式來簡化你的程式碼.