2009-09-29 427 views
7

我将在我的web应用程序中使用Log4j,我对此很陌生。 Log4j有什么用途,以及我在应用程序中如何使用它。提前致谢。Log4j API有什么用途?

回答

12

我认为Log4J home page提供了使用背后的最佳概述和基本原理。

随着log4j的,能够在运行时启用 记录,而无需修改 应用二进制。 log4j 包被设计成使得这些 报表可以保留在发货代码 中而不会产生成本较高的性能 。记录行为可以是 ,通过编辑配置文件 来控制,而不需要触摸应用程序 二进制。

记录装备为开发人员提供了 详细的应用程序 失败的上下文。另一方面,测试 提供质量保证和 在应用程序的信心。记录 和测试不应该混淆。 它们是互补的。当明智地使用记录 时,它可以证明是 必不可少的工具。

要添加到此,使用Log4J可以动态切换日志开/关。您可以动态更改格式(您是否想要时间戳?datestamps?),并且可以更改日志记录的位置(将控制台?更改为数据库?),而无需更改代码。

+1

您也可以一次登录多个来源。在我正在处理的应用程序中,当我测试应用程序时,我登录到控制台(以便可以看到调试信息以及任何弹出的错误)以及始终记录到的标准日志文件。非常方便。 – 2009-09-29 13:04:32

1

log4j的美丽在于它的appenders和layouts体系结构。正如前面的海报所提到的,您可以毫不费力地改变应用程序的日志记录方面,大部分时间只是简单配置的问题。我在我的部分中添加的一个用法是集中式日志记录,可以在不触及其代码库的情况下将其添加到您的应用程序中。例如 - 看看this

1

在最基本的层面上,您可以将其视为代码中System.out.println的替代品。为什么它比System.out.println更好?原因很多。

首先,System.out.println输出到标准输出,通常是控制台窗口。 Log4j的输出可以转到控制台,但也可以转到电子邮件服务器,databaseW表,日志文件或各种其他目标。

Log4j的另一大优点是可以设置不同级别的日志记录。这些级别是分层的,如下所示:TRACE,DEBUG,INFO,WARN,ERROR和FATAL。如果您设置了特定的日志级别,则会为该级别及其之上的所有级别记录消息,而不是记录级别以下的任何日志级别。例如,如果您的日志级别设置为ERROR,那么您将记录错误和致命错误的消息。如果您的日志级别设置为INFO,则会记录信息,警告,错误和致命错误消息。通常,在本地计算机上开发时,最好将日志级别设置为DEBUG,并且在部署Web应用程序时,应将日志级别设置为INFO或更高级别,以便不会用错误日志填充调试消息。

Log4j可以做其他很棒的事情。例如,您可以为特定的Java类设置级别,以便如果某个特定的类吐出大量警告,则可以将该类的日志级别设置为ERROR以禁止所有警告消息。

Read more...