Jedes Mal, wenn Sie eine neue Klasse schreiben, müssen Sie diese wie folgt deklarieren:
private static Logger logger = Logger.getLogger(Test.class);
Ist das nicht sehr problematisch? Gibt es eine M?glichkeit, den Logger auf eine statisch aufrufbare Klasse festzulegen, die Info-, Fehler- und andere Methoden direkt aufzurufen und gleichzeitig die aktuelle Klasse, Thread-Nummer und andere Informationen auszugeben?
你大可以簡單封裝一下實現(xiàn)你要的目的,比如建個類把Logger封裝進去,暴露幾個靜態(tài)接口出來。至于為什么很多代碼書寫的時候?qū)懗?code>private static Logger logger = Logger.getLogger(Test.class);,其實主要是為了提高日志的靈活性、準(zhǔn)確性等。
聲明log
是因為他可以定義不同的logger name
可以通過logger name
定制自己的輸出方式, 比如level
, appender
...等
如果你的日志是以相同的方式處理那你完全可以聲明公共的靜態(tài) log 對象
, 需要的地方使用該log
也不存在重復(fù)聲明的情況了.
如:
import static xxx.GlobalLogs.log;
log.debug("...");
log.info("...");
//...
當(dāng)然你還可以使用 lombok 的方式來簡化你的代碼.