Log4j 2 簡介
關于Log4j 2
Log4j 2 是Log4j的升級版,與之前的版本Log4j 1.x相比、有重大的改進,在修正了Logback固有的架構問題的同時,改進了許多Logback所具有的功能。
Log4j 2的特性以及改進有:
- API分離:Log4j將API與實現分離開來。開發人員現在可以很清楚地知道能夠使用哪些沒有兼容問題的類和方法,同時又允許通過自己實現來增強功能。
- 改進的性能:Log4j 2的性能在某些關鍵領域比Log4j 1.x更快,而且大多數情況下與Logback相當。更多的信息請參考性能。
- 多個API支持:Log4j 2提供最棒的性能的同時,還支持SLF4J和公共日志記錄API。
- 自動配置加載:像Logback一樣,一旦配置發生改變,Log4j 2可以自動載入這些更改后的配置信息,又與Logback不同,配置發生改變時不會丟失任何日志事件。
- 高級過濾功能:與Logback類似,Log4j 2可以支持基于上下文數據、標記,正則表達式以及日志事件中的其他組件的過濾。Log4j 2 能夠專門指定適用于所有的事件,無論這些事件在傳入Loggers之前還是正在傳給 appenders。另外,過濾器還可以與Loggers關聯起來。與Logback不同的是,Filter公共類可以用于任何情況。
- 插件架構:所有可以配置的組件都以Log4j插件的形式來定義。同樣地,不需要修改任何Log4j代碼就可以創建新的Appender、Layout、Pattern Convert 等等。Log4j自動識別預定義的插件,如果在配置中引用到這些插件,Log4j就自動載入使用。
- 屬性支持:屬性可以在配置文件中引用,也可以直接替代或傳入潛在的組件,屬性在這些組件中能夠動態解析。屬性可以是配置文件,系統屬性,環境變量,線程上下文映射以及事件中的數據中定義的值。用戶可以通過增加自己的Lookup插件來定制自己的屬性。
文檔
Log4j 2用戶文檔可在這里在線閱讀,或下載成PDF格式。
要求
Log4j 2至少要求安裝Java 5,然而使用Java 6的增強功能可以提高性能。有些特性需要一些可選的依賴,這些依賴在相關特性的文檔中有說明。
資訊
Log4j 2現在已經可以測試。API與Log4j 1.x 不兼容,不過通過適配器可以繼續使用Log4j 1.x API。 適配器同樣適用于Commons Logging和SLF4J.
Apache Log4j 2下載
Apache Log4j 2基于 Apache 許可證 2.0 發布。
鏡像(Mirrors)列中的鏈接列出了你所在地區的默認鏡像鏈接。如果鏈接無效,請更換瀏覽器再次嘗試。校驗和(Checksum)和簽名(Signature)是主服務器上原稿的鏈接。
|
鏡像 | 校驗 | 簽名 |
Apache Log4j 2 binary (tar.gz) | apache-log4j-2.0-beta4-bin.tar.gz | apache-log4j-2.0-beta4-bin.tar.gz.md5 | apache-log4j-2.0-beta4-bin.tar.gz.asc |
Apache Log4j 2 binary (zip) | apache-log4j-2.0-beta4-bin.zip | apache-log4j-2.0-beta4-bin.zip.md5 | apache-log4j-2.0-beta4-bin.zip.asc |
Apache Log4j 2 source (tar.gz) | apache-log4j-2.0-beta4-src.tar.gz | apache-log4j-2.0-beta4-src.tar.gz.md5 | apache-log4j-2.0-beta4-src.tar.gz.asc |
Apache Log4j 2 source (zip) | apache-log4j-2.0-beta4-src.zip | apache-log4j-2.0-beta4-src.zip.md5 | apache-log4j-2.0-beta4-src.zip.asc |
使用PGP或MD5簽名來驗證所下載文件的完整性是非常有必要的。請到Verifying Apache HTTP Server Releases查看更多關于為什么要驗證我們的發布。
可以使用PGP或GPG來驗證PGP簽名。首先下載發布對應的KEYS以及asc簽名文件。確保這些文件是從main distribution directory獲得,而不是鏡像鏈接。用下面命令來驗證:
% gpg --import KEYS % gpg --verify apache-log4j-2.0-beta3-bin.tar.gz.asc
Apache Log4j 2 由Ralph Goers B3D8E1BA簽名,
或者你也可以在這些文件上驗證MD5簽名。許多unix版本中包含名為md5或md5sum的unix程序。
以前的發布
以前的Apache log4j發布可以從archive repository找到。
Log4j 2.x的構建與安裝
構建
Log 4j 運行在Apache 軟件基金會下的代碼倉庫中。Log4j 代碼倉庫可以找到如何獲取當前絕大多的源代碼的細節。可以根據Log4j下載說明下載最新的源代碼
Log4j 2.x 使用Maven 2或3作為生成工具。在root目錄中僅運行”mvn install”就可以生成Log4j.
程序中如何使用
在你的程序中使用Log4j之前必須確保API和Core jars 在程序的classpath中。使用Maven將下面的依賴加入pom.xml.
<dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.0-beta3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.0-beta3</version> </dependency> </dependecies>
Apache 公共日志記錄
公共日志記錄在許多組件中使用,不同的組建可以選擇特定的日志記錄的實現。為了把這些組件的日志功能集成到Log4j 2,需要加入下面的依賴,而且不能刪除Commons Logging jar
<dependencies> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j-jcl</artifactId> <version>2.0-beta3</version> </dependency> </dependecies>
SLF4J
SLF4J是另一個受歡迎的日志記錄API,通過加入下面的依賴以及SLF4J依賴就可以將其綁定到Log4j 2.
<dependencies> <dependency> <groupId>org.apache.logging.log4j.adapters</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.0-beta3</version> </dependency> </dependecies>
發布更改記錄
升級注意事項
Apache Log4j 2不支持兼容老版本。如果要升級到Log4j 2請銘記下列幾條:
- 需要Java 5
- 簡化了XML配置,不兼容logj4 1.x。
- 不支持屬性文件配置
- 支持JSON配置
- 雖然Log4j 2不能與Log4j 1.x直接兼容,但是可以通過自帶兼容橋梁來降低升級帶來的代碼更改。
英文原文:Apache.org,編譯:ImportNew - 滕開選