本文爲轉載學習html
英文原文:Apache.org,編譯:ImportNew - 滕開選正則表達式
譯文鏈接:http://www.importnew.com/3046.htmlapache
關於Log4j 2 api
Log4j 2 是Log4j的升級版,與以前的版本Log4j 1.x相比、有重大的改進,在修正了Logback固有的架構問題的同時,改進了許多Logback所具備的功能。
Log4j 2的特性以及改進有:架構
API分離:Log4j將API與實現分離開來。開發人員如今能夠很清楚地知道可以使用哪些沒有兼容問題的類和方法,同時又容許經過本身實現來加強功能。app
改進的性能:Log4j 2的性能在某些關鍵領域比Log4j 1.x更快,並且大多數狀況下與Logback至關。更多的信息請參考性能。ide
多個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.
文檔
Log4j 2用戶文檔可在這裏在線閱讀,或下載成PDF格式。
要求
Log4j 2至少要求安裝Java 5,然而使用Java 6的加強功能能夠提升性能。有些特性須要一些可選的依賴,這些依賴在相關特性的文檔中有說明。
資訊
Log4j 2如今已經能夠測試。API與Log4j 1.x 不兼容,不過經過適配器能夠繼續使用Log4j 1.x API。 適配器一樣適用於Commons Logging和SLF4J.
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直接兼容,可是能夠經過自帶兼容橋樑來下降升級帶來的代碼更改。