在不少狀況下,咱們都會使用 SLF4J 來定義日誌。日誌
那麼如何定義一個 Logger 呢?code
相信絕大部分人都會定義爲:繼承
private static final Logger logger = LoggerFactory.getLogger(BigDecimalDemoUnitTest.class);
生命週期
可是咱們爲何要使用 private static final 來進行修飾呢?ci
同時,你能夠定義變量 log 來替代 logger,這樣可以減小輸入的字符數。固然這個也須要根據你的項目要求來定了。get
固然還有下面的一種狀況,考察日誌代碼:it
protected final Logger log = LoggerFactory.getLogger(getClass());
class
上面有關日誌的定義與咱們的規則是徹底相反的。變量
上面的代碼容許你在全部具備繼承關係的類中使用相同的日誌名(與實際的類名相同)。序列化
例如:
若是類 Bar Extends Foo,那麼上面 2 個類的日誌將會 log 到 Bar logger 中。