1. 程式人生 > >logback日誌列印原理

logback日誌列印原理

1. logger初始化

logger初始化的時候會根據傳入的名字去例項化。以下為例項化的例子

private static final Logger logger = LoggerFactory.getLogger(SClass.class);

啟動的時候,LoggerFactory會接收到com.aaa.Sclass的完整的類名字,然後根據點去切分,依次建立對應的logger 並快取起來,每個logger都是單例。最後的logger會是一棵以roor為核心的樹,如下圖所示。


2. logger列印過程

呼叫logger.info(msg)時,首先會定位到是樹中哪個logger,由於有的logger是沒有appender的(這是在logback.xml中配置),所以比如com.aaa.Class1呼叫時當前logger不會有輸出 ,然後向上找到com.aaa,發現其對應有個appender1則會呼叫該appender輸出日誌內容。如果logger設定了additivity="false"則停止列印,否則繼續向父節點呼叫繼續輸出日誌。