级别: 中级
【相关文章:xmlstockapp源代码解析】charles chan , 首席顾问, ambrose software inc. 【扩展阅读:Tuxedo 中关于时间的参数的说明】
2005 年 9 月 05 日 【扩展信息:Windows NT平台安装Tuxedo】
在企业级的开发过程中,我们不可避免地会碰到很多问题;如果您希望在开发过程的后期能够有效地捕捉 bug,那就需要一种有效的日志策略。但是在一个企业的应用程序中要想实现有效地记录日志,需要进行一番规划,并设计一些准则。在本文中,顾问 charles chan 将向您介绍一些最好的实践,从而帮助您从项目一开始就编写有用的日志代码。如果您是一名开发人员,那您很可能就已经具有这种经验:您已经开发了一些代码以及一些测试用例。应用程序经过了严格的 qa 测试,您确信代码可以完全适合业务的需求。然而,在将应用程序最终交付终端用户的手里时,却会出现一些预想不到的问题。如果没有适当的日志消息,可能需要花费几天的时间来诊断这些问题。不幸的是,大部分项目对于日志都没有一个清晰的策略。如果没有这种策略,系统产生的日志消息就有可能无益于问题的分析与解决。在本文中,我们将讨论企业应用程序日志的各个方面的问题。您将看到一个 java™ 平台上日志 api 的概述,学习一些最好的编写日志代码的实践,并了解如果需要在产品环境中对详细日志重新进行排序,应该如何处理。
选择日志 api
在使用 java 平台进行开发时,可以使用两个主要的日志 api:apache log4j 与 java logging api,在 1.4 及更高版本的 java 平台中都提供了这两个 api。与 java logging api 相比,log4j 更加成熟,特性也更加丰富。这两个日志的实现都采用了一个类似的设计模式(如图 1 所示)。除非您的公司限制要使用第三方的库,否则我强烈建议使用 log4j。如果您不能决定使用哪个 api,就可以使用 apache commons logging api,它对底层的日志实现进行了封装。从理论上来说,这样不用修改代码就可以进行日志实现的切换。然而,实际上您很少会切换日志的实现;因此,我不建议使用 apache commons logging api,因为它的复杂性并不没有给您带来其他特性。
日志概述
log4j 与 java logging api 都采用了类似的设计与使用模式(如图 1 与清单 1 所示)。消息首先被创建,然后传递给一个具有特定优先权的日志对象。这些消息的目的与格式是由输出处理程序及其布局所决定。
图 1. 日志实现的主要组件 清单 1. 日志对象的实例化与使用 ... 下一页