Java日志系统浅谈

日志系统是一种开发中不可或缺的跟踪调试工具,特别是在那些无人值守的后台程序和没有跟踪调试环境的系统中有着广泛的应用。

长期以来,日志系统都是作为应用程序的一种服务(此“服务”不按照Windows中的服务进程来理解)而存在,对于跟踪调试,程序运行状态记录,崩溃数据恢复都有非常现实的意义。这种服务通常以两种形式存在:

  1. 日志系统作为服务进程而存在。日志的发生端与日志的保存端通常不在同一个进程中,日志的发送是异步过程。这种日志通常服务于系统管理员监视系统各种运行状态。

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

一直以来我有的误区 

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

一个功能完备的应日志系统框架的基本功能/特性:

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

  2. 日志按照某种标准分成不同级别。分级以后的日志,可以按照级别去筛选。

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

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

  5. 高性能

  6. 稳定

常用的Java日志系统简介:

  1.  Log4j 最早的Java日志框架之一,由Apache基金会发起,基于配置文件,提供灵活而强大的日志记录机制。但是内部概念和配置过程稍显复杂。这篇文章介绍Log4j

  2. JDK Logging Framework    JDK发布的一个日志框架接口,并提供了一个简单的实践

  3. Commons Logging Framework  同样是Apache发起的项目,其出现是为了使Java项目能够在Log4j和JDK Logging Framework上随意切换,因此该框架提供了统一的调用接口和配置方法。


你可能感兴趣的:(Java日志系统浅谈)