log4j架構


Log4j API設計為分層結構,其中每一層提供了不同的物件,物件執行不同的任務。這使得設計靈活,根據將來需要來擴充套件。

有兩種型別可用在Log4j的框架物件。

  • 核心物件: 框架的強制物件和框架的使用。

  • 支援物件: 框架和支援體核心物件,可選的物件執行另外重要的任務。

核心物件:

Logger物件:

頂級層的Logger,它提供Logger物件。Logger物件負責捕獲紀錄檔資訊及它們儲存在一個空間的層次結構。

布局物件:

該層提供其用於格式化不同風格的紀錄檔資訊的物件。布局層提供支援Appender物件到發布紀錄檔資訊之前。

布局物件的發布方式是人類可讀的及可重複使用的記錄資訊的一個重要的角色。

Appender物件:

下位層提供Appender物件。Appender物件負責發布紀錄檔資訊,以不同的首選目的地,如資料庫,檔案,控制台,UNIX系統紀錄檔等。

以下是顯示Log4J框架的不同元件的虛擬圖:

Log4j Architecture

支援物件:

log4j框架的其他重要的物件起到紀錄檔框架的一個重要作用:

Level物件:

級別物件定義的任何記錄資訊的粒度和優先順序。有記錄的七個級別在API中定義:OFF, DEBUG, INFO, ERROR, WARN, FATAL 和 ALL

Filter物件:

過濾物件用於分析紀錄檔資訊及是否應記錄或不用這些資訊做出進一步的決定。

一個appender物件可以有與之關聯的幾個Filter物件。如果紀錄檔記錄資訊傳遞給特定Appender物件,都和特定Appender相關的Filter物件批准的紀錄檔資訊,然後才能發布到所連線的目的地。

物件渲染器:

ObjectRenderer物件是一個指定提供傳遞到紀錄檔框架的不同物件的字串表示。這個物件所使用的布局物件來準備最後的紀錄檔資訊。

紀錄檔管理:

紀錄檔管理物件管理的紀錄檔框架。它負責從一個系統級的組態檔案或組態類讀取初始組態引數。