`

Java日志系统框架

阅读更多

  在Java领域,存在大量的日志组件。日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有着重要的作用,我们可以把Java日志系统看作是必不可少的跟踪调试工具。

  日志系统是一种不可或缺的跟踪调试工具,特别是在任何无人值守的后台程序以及那些没有跟踪调试环境的系统中有着广泛的应用。长期以来,日志系统作为一种应用程序服务,对于跟踪调试、程序状体记录、崩溃数据恢复都有着非常现实的意义。这种服务通常以两种方式存在:

  1.日志系统作为服务进程存在。Windows中的事件日志服务就属于这种类型,该类型的日志系统通常通过消息队列机制将所需要记录的日志由日志发送端发送该日志服务。日志发送端和日志保存端通常不在同一进程中,日志的发送是异步过程。这种日志服务通常用于管理员监控各种系统服务的状态。

  2.日志系统作为系统调用存在。Java世界中的日志系统和Unix环境下诸多守护进程所使用的日志系统都属于这种类型。日志系统的代码作为系统调用被编译进日志发送端,日志系统的运行和业务代码的运行在同一进程空间。日志的发送多数属于同步过程。这种日志服务由于能够同步反映出系统运行状态,通常用于调试跟踪和崩溃恢复。

   第二种类型的日志系统将利用Java线程技术实现一个既能同一线程空间中程序运行状态的同步日志发送过程,又能够提供快速的日志记录服务,还能够提供灵活的日志格式配置和过滤机制。

  系统调试的误区:在控制台环境下调试Java程序时,此时往控制台或者文本文件输出一段文字是查看程序运行状态最简单的做法,但这种方式并不能解决全部的问题。有时候,对于一个我们无法实时查看系统输出的系统或者一个确实需要保留我们输出信息的系统,良好的日志系统显得相当重要。因此,不能随意的输出各种不规范的调试信息,这些随意输出的信息是不可控的,难以清除,可能为后台监控、错误排除和错误恢复带来相当大的阻力。

  日志系统框架的基本功能

  一个完备的日志系统框架通常应当包括如下基本特性:

  所输出的日志拥有自己的分类:这样在调试时便于针对不同系统的不同模块进行查询,从而快速定位到发生日志事件的代码。

  日志按照某种标准分成不同级别:分级以后的日志,可以用于同一分类下的日志筛选。

  支持多线程:日志系统通常会在多线程环境中使用,特别是在Java系统当中,因此作为一种系统资源,日志系统应当保证是线程安全的。

   支持不同的记录媒介:不同的工程项目往往对日志系统的记录媒介要求不同,因此日志系统必须提供必要的开发接口,以保证能够比较容易的更换记录介质。

  高性能:日志系统通常要提供高速的日志记录功能以应对大系统下大请求流量下系统的正常运转。

  稳定性:日志系统必须是保持高度的稳定性,不能因为日志系统内部错误导致主要业务代码的崩溃。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics