简 介

把log语句插入到你的代码中是一种低技能的排错办法。这也许是唯一的方法,因为排错工具并不总是可以被使用或者适用于你的程序。对于distributed应用程序,通常就是这样的情形。

另一方面,一些人认为log statements污染了源代码并降低了可读性。在Java语言里,预处理器(preprocessor)不存在,log statements增加了代码的容量,并降低了速度,即使把logging关掉也是这样。对于一个大小适度的应用程序,它也许会包含许许多多的log statements,速度就非常重要了。

有了log4j,就有可能在运行时间启用日志(logging),而不需要修改应用程序的二进制编码。 log4j 软件包的设计让这些日志说明保留在代码里而不造成巨大的性能损失。日志行为可以通过编辑一个配置文件来控制,而不用去打动应用程序的二进制编码。

Logging给开发人员提供了关于程序失败的详细内容。另一方面,测试提供对这个应用程序的质量保证和信心。日志和测试不能被混淆。它们俩是互补的。日志(logging)在明智地被使用时,它是一个非常重要的工具。

log4j的一个与众不同的特性是loggers里的继承(inheritance)的观念。使用logger阶层,可以极其容易并非常精细的控制哪些日志说明被输出。这可以减少日志输出量,并减低日志的消费。

Log 输出的目标可以是一个文件,一个OutputStream,一个java.io.Writer,一个远程log4j服务器,一个远程Unix Syslog daemon,或者许多其他输出目标。

在一个AMD Duron 定时在800Mhz 的运行JDK 1.3.1上,大约需要5 毫微秒来决定一个日志说明是否应该被记录下来。实际上的日志也很快,从使用SimpleLayout的21微秒,到使用TTCCLayout的37微秒。PatternLayout 的性能几乎和其他专用式样一样好,而且它具有更大的灵活性。

感谢用户们的建议和社区作者们的贡献,这个软件包在不断改进。


Copyright © 1999-2005, Apache Software Foundation
Jaxwiki.com
     Jaxwiki 首页 | Tomcat 中文使用手册 | Log4j 中文使用手册