网站大量收购闲置独家精品文档,联系QQ:2885784924

log4j日志框架的设计与实现.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
log4j日志框架的设计与实现

1???????????简介 日志系统是一种不可或缺的跟踪调试工具,特别是在任何无人职守的后台程序以及那些没有跟踪调试环境的系统中有着广泛的应用。 长期以来, 日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有非常现实的意义。这种服务通常以两种方式存在: 1.????????日志系统作为服务进程存在。?Windows?中的的事件日志服务就属于这种类型,该类型的日志系统通常通过消息队列机制将所需要记录的日志由日志发送端发送给日志服务。日志发送端和日志保存端通常不在同一进程当中,日志的发送是异步过程。这种日志服务通常用于管理员监控各种系统服务的状态。 2.????????日志系统作为系统调用存在。?Java?世界中的日志系统和?Unix?环境下诸多守护进程所使用的日志系统都属于这种类型。日志系统的代码作为系统调用被编译进日志发送端,日志???统的运行和业务代码的运行在同一进程空间。日志的发送多数属于同步过程。这种日志服务由于能够同步反映处系统运行状态,通常用于调试跟踪和崩溃恢复。 本文建立的日志系统基本属于第二种类型,但又有所不同。该日志系统将利用 Java 线程技术实现一个既能够反映统一线程空间中程序运行状态的同步日志发送过程,又能够提供快速的日志记录服务,还能够提供灵活的日志格式配置和过滤机制。 1.1??????????系统调试的误区 在控制台环境上调试 Java 程序时,此时往控制台或者文本文件输出一段文字是查看程序运行状态最简单的做法,但这种方式并不能解决全部的问题。有时候,对于一个我们无法实时查看系统输出的系统或者一个确实需要保留我们输出信息的系统,良好的日志系统显得相当必要。 因此,不能随意的输出各种不规范的调试信息,这些随意输出的信息是不可控的,难以清除,可能为后台监控、错误排除和错误恢复带来相当大的阻力。 1.2??????????日志系统框架的基本功能 一个完备的日志系统框架通常应当包括如下基本特性: ??所输出的日志拥有自己的分类。这样在调试时便于针对不同系统的不同模块进行查询,从而快速定位到发生日志事件的代码。 ??日志按照某种标准分成不同级别。分级以后的日志,可以用于同一分类下的日志筛选。 ??支持多线程。日志系统通常会在多线程环境中使用,特别是在?Java?系统当中,因此作为一种系统资源,日志系统应当保证是线程安全的。 ??支持不同的记录媒介。不同的工程项目往往对日志系统的记录媒介要求不同,因此日志系统必须提供必要的开发接口,以保证能够比较容易的更换记录介质。 ??高性能。日志系统通常要提供高速的日志记录功能以应对大系统下大请求流量下系统的正常运转。 ??稳定性。日志系统必须是保持高度的稳定性,不能因为日志系统内部错误导致主要业务代码的崩溃。 1.3??????????常用日志系统简介 在 Java 世界中,以下三种日志框架比较优秀: 1)?????????Log4J 最早的 Java 日志框架之一,由 Apache 基金会发起,提供灵活而强大的日志记录机制。但是其复杂的配置过程和内部概念往往令使用者望而却步。 2)?????????JDK1.4 Logging Framework 继 Log4J 之后, JDK 标准委员会将 Log4J 的基本思想吸收到 JDK 当中,在 JDK1.4 中发布了第一个日志框架接口,并提供了一个简单实现。 3)?????????Commons Logging Framwork 该框架同样是 Apache 基金会项目,其出现主要是为了使得 Java 项目能够在 Log4J 和 JDK1.4 l Logging Framework 的使用上随意进行切换,因此该框架提供了统一的调用接口和配置方法。 2???????????系统设计 由 于 Log4J 得到广泛应用,从使用者的角度考虑,本文所设计的框架,采用了部分 Log4J 的接口和概念,但内部实现则完全不同。使用 Java 实现日志框架,关键的技术在于前面提及的日志框架特性的内部实现,特别是:日志的分类和级别、日志分发框架的设计、日志记录器的设计以及在设计中的高性能 和高稳定性的考虑。 2.1??????????系统架构 日 志系统框架可以分为日志记录模块和日志输出模块两大部分。日志记录模块负责创建和管理日志记录器 (Logger) ,每一个 Logger 对象负责按照不同的级别 (LoggerLevel) 接收各种记录了日志信息的日志对象 (LogItem) , Logger 对象首先获取所有需要记录的日志,并且同步地将日志分派给日志输出模块。日志输出模块则负责日志 输出器 (Appender) 的创建和管理,以及日志的输出。系统中允许有多个不同的日志 输出器 ,日志 输出器 负责将日志记录到存

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档