log4j架構(gòu)
Log4j API設(shè)計為分層結(jié)構(gòu),其中每一層提供了不同的對象,對象執(zhí)行不同的任務(wù)。這使得設(shè)計靈活,根據(jù)將來需要來擴展。
有兩種類型可用在Log4j的框架對象。
核心對象: 框架的強制對象和框架的使用。
支持對象: 框架和支持體核心對象,可選的對象執(zhí)行另外重要的任務(wù)。
核心對象包含如下三種對象:
- Logger對象:頂級層的Logger,它提供Logger對象。Logger對象負責(zé)捕獲日志信息及它們存儲在一個空間的層次結(jié)構(gòu)。
- 布局對象:該層提供其用于格式化不同風(fēng)格的日志信息的對象。布局層提供支持Appender對象到發(fā)布日志信息之前。布局對象的發(fā)布方式是人類可讀的及可重復(fù)使用的記錄信息的一個重要的角色。
- Appender對象:下位層提供Appender對象。Appender對象負責(zé)發(fā)布日志信息,以不同的首選目的地,如數(shù)據(jù)庫,文件,控制臺,UNIX系統(tǒng)日志等。
以下是顯示Log4J框架的不同組件的虛擬圖:

支持對象包含以下二種對象:
log4j框架的其他重要的對象起到日志框架的一個重要作用:
- Level對象:級別對象定義的任何記錄信息的粒度和優(yōu)先級。有記錄的七個級別在API中定義:OFF, DEBUG, INFO, ERROR, WARN, FATAL 和 ALL
- Filter對象:過濾對象用于分析日志信息及是否應(yīng)記錄或不用這些信息做出進一步的決定。
一個appender對象可以有與之關(guān)聯(lián)的幾個Filter對象。如果日志記錄信息傳遞給特定Appender對象,都和特定Appender相關(guān)的Filter對象批準的日志信息,然后才能發(fā)布到所連接的目的地。
- 對象渲染器:ObjectRenderer對象是一個指定提供傳遞到日志框架的不同對象的字符串表示。這個對象所使用的布局對象來準備最后的日志信息。
- 日志管理:日志管理對象管理的日志框架。它負責(zé)從一個系統(tǒng)級的配置文件或配置類讀取初始配置參數(shù)。