log4net 是 apache log4j 在 Microsoft .NET 平臺上的實現,是一個幫助程序員將日志信息輸出到各種目標(控制臺、文件、數據庫等)的工具。log4net 是 Apache 軟件基金會 Apache Logging Services 工程的一部分,該工程旨在為程序調試和審計提供跨語言的日志服務。
特征
- 支持多數框架
- 可輸出日志到多種目標
- 層級日志體系
- 可使用 XML 配置
- 可動態配置
- 記錄上下文信息
- 被檢驗過的體系
- 模塊化和可擴展化設計
- 靈活、高性能
支持框架
log4net 可運行在所有兼容 ECMA CLI 1.0 的運行時平臺上。明確建立為下列框架:
- Microsoft .NET Framework 1.0
- Microsoft .NET Framework 1.1
- Microsoft .NET Framework 2.0
- Microsoft .NET Framework 3.5
- Microsoft .NET Framework 4.0
- Microsoft .NET Framework 3.5 Client Profile
- Microsoft .NET Framework 4.0 Client Profile
- Microsoft .NET Compact Framework 1.0
- Microsoft .NET Compact Framework 2.0
- Mono 1.0
- Mono 2.0
- 微軟 Shared Source CLI 1.0
- CLI 1.0 Compatible
日志等級
下表中定義的 log4j 1 的日志級別和消息,以嚴重性遞減排序。左欄列出了 log4j 的日志級別定義,右列提供了每個日志級別的簡要說明。
配置
有三種方法來配置 log4j:通過.properties 文件,通過 XML 文件,通過 Java 代碼。通過上述任意方法,你可以定義 log4j 的三個主要組件:Logger、Appender 和 Layout。通過文件配置 log4j,具有無需修改應用即可打開或關閉日志的好處。例如,應用程序可以在日志關閉的情況下運行,直到問題出現后,再日志功能可以簡單地通過修改配置文件重新打開。
Logger(記錄器)是日志的邏輯文件名。其使用已知的 Java 應用程序的名稱。每個記錄器當前以什么日志記錄級別(FATAL、ERROR 等)記錄是獨立配置的。在 log4j 的早期版本中,這些被稱為類別(category)和優先級(priority),但現在他們分別被稱為 logger(記錄器)和 level(級別)。
實際的輸出是通過 Appender(輸出源)。有許多可用的 Appender,比如 FileAppender、ConsoleAppender、SocketAppender、SyslogAppender、NTEventLogAppender,甚至 SMTPAppender。多個 Appender 可以被關聯到任何 Logger 上,所以可以到多個輸出文件上記錄相同的信息,例如同時到一個本地文件和通過套接字監聽器到另一臺計算機上。
Appender 使用 Layout(布局)格式化日志條目。常用的格式化為“一次一行”式日志文件的布局是 PatternLayout,其使用一個模式字符串,就像 C/C++ 函數 printf 那樣。此外還有 HTMLLayout 和 XMLLayout,使用 HTML 或 XML 格式的時候會更方便。
要調試一個表現異常的配置文件,使用 Java VM 參數 -Dlog4j.debug 通過標準輸出輸出 Log4j 自身的信息。要獲知 log4j.propeties 的路徑,檢查 getClass().getResource("/log4j.properties") 或 getClass().getResource("/log4j.XML")。
log4j 還有一個隱含的“未配置”配置,即一個缺乏 log4j 的配置但使用了 log4j 的 Java 應用程序。這將把一個警告(該程序未配置 log4j)打印到標準輸出,并提供 log4j 網站的 URL,在那里可以找到警告和配置的詳細信息。除了打印此警告,未配置的 log4j 的應用程序不會打印 INFO、DEBUG 或 TRACE 級別的消息,而且還可能不輸出更高級別的消息。
移植
log4c——一個 C 語言下的移植。最新的版本為 2013 年發布的 1.2.4 版。該項目已不再活躍。
log4js——一個 ECMAScript 下的移植。最新的版本為 2008 年發布的 1.1 版。
log4javascript (頁面存檔備份,存于互聯網檔案館)——JavaScript 下的另一個移植。最新的版本為 2014 年 5 月發布的 1.4.6 版。
JSNLog (頁面存檔備份,存于互聯網檔案館)——JavaScript 下的另一移植。在 2014 年 7 月,最新的版本為 2.7.1,并且定期更新。
apache Log4net——微軟 .NET Framework 下的移植。最新的版本為 2013 年發布的 1.2.13。
log4Perl (頁面存檔備份,存于互聯網檔案館)——log4j 日志軟件包在一個 Perl 下的移植。最新的版本為 2014 年 5 月發布的 1.44。
log4r——一個 Ruby 下的“移植”。
PL-SQL-Logging-Utility (頁面存檔備份,存于互聯網檔案館)——log4j 在 PL/SQL 下的一種實現。
Log4db2 (頁面存檔備份,存于互聯網檔案館)——一個為使用 SQL 命令和 SQL PL 代碼的 DB2 LUW 的日志記錄工具
參考資料 >
Log4net 初識及簡單使用.CSDN博客.2024-08-19
C#輸出日志文件——log4net組件.CSDN博客.2024-08-19
Apache log4net? 特性.CSDN博客.2024-08-19