log4net 是
apache log4j 在 Microsoft .NET 平台上的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。log4net 是 Apache 软件基金会 Apache Logging Services 工程的一部分,该工程旨在为程序调试和审计提供跨语言的日志服务。
特征
- 支持多数框架
- 可输出日志到多种目标
- 层级日志体系
- 可动态配置
- 记录上下文信息
- 被检验过的体系
- 模块化和可扩展化设计
- 灵活、高性能
支持框架
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。
log4
Perl (页面存档备份,存于
互联网档案馆)——log4j 日志软件包在一个 Perl 下的移植。最新的版本为 2014 年 5 月发布的 1.44。
PL-SQL-Logging-Utility (页面存档备份,存于互联网档案馆)——log4j 在 PL/SQL 下的一种实现。
Log4db2 (页面存档备份,存于互联网档案馆)——一个为使用
SQL 命令和 SQL PL 代码的
DB2 LUW 的日志记录工具