log4j2簡介

来源:http://www.cnblogs.com/cyc2011/archive/2017/12/14/8040467.html
-Advertisement-
Play Games

Apache Log4j 2 Apache Log4j 2是對Log4j的升級,它比它的前輩Log4j 1提供了顯著的改進。在解決Logback的架構中存在的一些固有問題時,提供了許多可用的改進。 特性 API分離 Log4j的API與實現分離,使應用程式開發人員清楚地知道,他們可以使用哪些類和方法 ...


Apache Log4j 2

Apache Log4j 2是對Log4j的升級,它比它的前輩Log4j 1提供了顯著的改進。在解決Logback的架構中存在的一些固有問題時,提供了許多可用的改進。


特性

API分離

Log4j的API與實現分離,使應用程式開發人員清楚地知道,他們可以使用哪些類和方法來確保向前相容性。這允許Log4j團隊以一種相容的方式安全地改進實現。

改進的性能

Log4j 2包含了基於LMAX破壞者庫的下一代非同步日誌記錄器。在多線程場景中,非同步日誌記錄器的吞吐量比Log4j 1要高18倍,並且數量級要低。Log4j 1.x和Logback。有關詳細信息,請參閱非同步日誌記錄性能。否則,Log4j 2將顯著優於Log4j 1。x,Logback java.util。日誌記錄,特別是在多線程應用程式中。更多信息請參見性能。

支持更多API Log4j 2 API將提供最好的性能,Log4j 2為Log4j 1.2、SLF4J、Commons日誌記錄和java.util提供了支持。日誌(7月)api。
  避免鎖定
對Log4j 2 API進行編碼的應用程式總是可以選擇使用任何slf4j相容的庫作為它們的日誌程式實現,使用log4jslf4j適配器。
 

自動重新載入配置

與Logback一樣,Log4j 2可以在修改後自動重新載入它的配置。與Logback不同的是,在重新配置的情況下,它將不會丟失日誌事件。

先進的過濾

與Logback一樣,Log4j 2支持基於上下文數據、標記、正則表達式和日誌事件中的其他組件進行過濾。在傳遞給日誌記錄器或通過appender之前,可以指定過濾應用於所有事件。此外,過濾器還可以與日誌記錄器相關聯。與Logback不同的是,你可以在任何情況下使用一個通用的過濾器類。

插件體繫結構

Log4j使用插件模式來配置組件。因此,您不需要編寫代碼來創建和配置Appender、佈局、模式轉換器等等。Log4j自動識別插件併在配置引用它們時使用它們。

屬性的支持

您可以在配置中引用屬性,Log4j將直接替換它們,或者Log4j將把它們傳遞給一個將動態解析它們的底層組件。屬性來自於配置文件中定義的值、系統屬性、環境變數、ThreadContext映射和事件中的數據。用戶可以通過添加自己的Lookup Plugin來進一步定製屬性提供者。

Java 8λ支持

在此之前,如果一個日誌消息的構建成本很高,那麼在構造消息之前,您通常會顯式地檢查請求的日誌級別是否啟用。在Java 8上運行的客戶機代碼可以從Log4j的lambda支持中獲益。由於Log4j不會對一個lambda表達式進行評估,如果請求的日誌級別沒有啟用,那麼使用較少的代碼就可以實現相同的效果。

自定義日誌級別

在Log4j 2中,可以很容易地在代碼或配置中定義自定義日誌級別。不需要子類化。

版本支持

在版本2.9.1中,Log4j支持Java 9,但是仍然可以在Java 7或8中工作。在這個版本中,log4j-api被打包為一個多版本jar,並且支持StackWalker和Process api的使用。

在版本2.4中,Log4J需要Java 7。

Log4j版本2.3和舊版本需要Java 6。

 

支持特性

XML configuration、Properties configuration、JSON configuration

CSV Layout、JSON Layout、XML Layout

Async Loggers

Kafka Appender、SMTP Appender、JMS Appender、JDBC Appender、JPA Appender、NoSQL Appender with MongoDB provider 等

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1,為什麼使用正則表達式? 1,測試字元串內的模式。 例如,可以測試輸入字元串,以查看字元串內是否出現電話號碼模式或信用卡號碼模式。這稱為數據驗證。 2,替換文本。 可以使用正則表達式來識別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。 3,基於模式匹配從字元串中提取子字元串。 可以查找文檔 ...
  • 1.邏輯運算符 邏輯與 && 並且 and 邏輯或 || 或者 or 邏輯非 ! 取反 not 2.邏輯運算符連接起來的式子就是邏輯表達式 邏輯表達式結果: 布爾類型的值, var num1 = 10; var num2 = 20; console.log(num1 0 && num2 邏輯與&& ...
  • pow 求誰的多少次方 四捨五入 向上取整 向下取整 求一堆數的最大值 求一堆數的最小值 求隨機數 0 1之間的數 ...
  • 交換2個number類型的變數的值,不能使用第三方變數 ...
  • 1.彈出框 ,小括弧中就是彈出的內容 alert("我是一個彈出框"); 2.控制台輸出 小括弧裡面就是 控制台輸出的東西 console.log("我是控制台輸出的內容"); 3.彈出輸入框,可以接受用戶輸入的信息。 3.1 prompt("請輸入你的名字"); 3.2 prompt("請輸入你的 ...
  • vue——props的兩種常用方法 1、實現父—— 子的通信 舉例如下: 父組件 parent.vue <children :channel="object1" </children 子組件 children.vue export default{ name:"children", pr ...
  • 背景圖片自適應瀏覽器大小 之前在網上看到的一個小技巧,記錄一下:背景圖片鋪滿屏幕並且可以隨著瀏覽器進行自適應,代碼如下: <body <div style="position:absolute; width:100%; height:100%; z index: 1" <img s ...
  • 1、塊級作用域 (1)使用let代替var 好處:變數應該只在其聲明的代碼塊內有效;var命令存在變數提升效用,let命令沒有這個問題。 (2)全局常量 在let和const之間,建議優先使用const,尤其是在全局環境,不應該設置變數,只應設置常量。 const優於let有幾個原因。一個是cons ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...