log4j遵循層次化架構,每一個層都有不一樣的對象來執行不一樣的任務。這種層次話的結構靈活設計、易於將來的擴展。數據庫
log4j框架中有兩種對象:架構
- 核心對象:框架的支撐對象,是框架必不可少的組成部分。
- 支撐對象:這些是框架可選的對象,用於提供額外重要的工做。
核心對象包括下面幾種類型:app
- logger對象,是最高的層,負責經過不一樣的風格轉化日誌信息。它提供給appender對象發佈前的信息。(這裏的層是指所處的位置)
- layout對象,用於提供格式化日誌信息的風格,在發佈日誌信息前,使其變得可讀、可重用。
- appender對象,這個對象屬於底層的對象,它負責發佈信息到不一樣的目的地,好比數據庫、文件、控制檯、UNIXsyslog等等。
下面就是log4j的架構組成圖:框架
支撐對象,他們在log4j框架中扮演了很關鍵的角色:設計
- level對象:級別對象定義來日誌信息的粒度和優先級,有七種級別:OFF,DEBUG,INFO,ERROR,WARN,FATAL和ALL。
- 過濾器對象:用於分析日誌信息並決定日誌信息是否輸出。每一個appender對象能夠有幾個過濾器對象協同工做,當日志信息到達特定的appender時,全部的過濾器會功能幫助appender在其發佈到目的地以前進行過濾操做。
- 對象渲染器:提供一段字符串用於識別發送日誌的不一樣對象,這個對象也用於爲layout對象準備常量信息。
- 日誌管理器:用於管理日誌框架,它負責從初始化配置中讀取信息,這個配置多是文件配置、也多是類的配置。