知识大全 了解Java日志系统框架的设计与实现
Posted 系统
篇首语:要须心地收汗马,孔孟行世目杲杲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 了解Java日志系统框架的设计与实现相关的知识,希望对你有一定的参考价值。
了解Java日志系统框架的设计与实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在Java 领域 存在大量的日志组件 open open收录了 个日志组件 日志系统作为一种应用程序服务 对于跟踪调试 程序状态记录 崩溃数据恢复都有着重要的作用 我们可以把Java日志系统看作是必不可少的跟踪调试工具
简介
日志系统是一种不可或缺的跟踪调试工具 特别是在任何无人职守的后台程序以及那些没有跟踪调试环境的系统中有着广泛的应用 长期以来 日志系统作为一种应用程序服务 对于跟踪调试 程序状态记录 崩溃数据恢复都有非常现实的意义 这种服务通常以两种方式存在
日志系统作为服务进程存在 Windows中的的事件日志服务就属于这种类型 该类型的日志系统通常通过消息队列机制将所需要记录的日志由日志发送端发送给日志服务 日志发送端和日志保存端通常不在同一进程当中 日志的发送是异步过程 这种日志服务通常用于管理员监控各种系统服务的状态
日志系统作为系统调用存在 Java世界中的日志系统和Unix环境下诸多守护进程所使用的日志系统都属于这种类型 日志系统的代码作为系统调用被编译进日志发送端 日志系统的运行和业务代码的运行在同一进程空间 日志的发送多数属于同步过程 这种日志服务由于能够同步反映处系统运行状态 通常用于调试跟踪和崩溃恢复
本文建立的日志系统基本属于第二种类型 但又有所不同 该日志系统将利用Java线程技术实现一个既能够反映统一线程空间中程序运行状态的同步日志发送过程 又能够提供快速的日志记录服务 还能够提供灵活的日志格式配置和过滤机制
系统调试的误区
在控制台环境上调试Java程序时 此时往控制台或者文本文件输出一段文字是查看程序运行状态最简单的做法 但这种方式并不能解决全部的问题 有时候 对于一个我们无法实时查看系统输出的系统或者一个确实需要保留我们输出信息的系统 良好的日志系统显得相当必要 因此 不能随意的输出各种不规范的调试信息 这些随意输出的信息是不可控的 难以清除 可能为后台监控 错误排除和错误恢复带来相当大的阻力
日志系统框架的基本功能
一个完备的日志系统框架通常应当包括如下基本特性
所输出的日志拥有自己的分类 这样在调试时便于针对不同系统的不同模块进行查询 从而快速定位到发生日志事件的代码
日志按照某种标准分成不同级别 分级以后的日志 可以用于同一分类下的日志筛选
支持多线程 日志系统通常会在多线程环境中使用 特别是在Java系统当中 因此作为一种系统资源 日志系统应当保证是线程安全的
支持不同的记录媒介 不同的工程项目往往对日志系统的记录媒介要求不同 因此日志系统必须提供必要的开发接口 以保证能够比较容易的更换记录介质
高性能 日志系统通常要提供高速的日志记录功能以应对大系统下大请求流量下系统的正常运转
稳定性 日志系统必须是保持高度的稳定性 不能因为日志系统内部错误导致主要业务代码的崩溃
常用日志系统简介
在Java世界中 以下三种日志框架比较优秀
)Log J
最早的Java日志框架之一 由Apache基金会发起 提供灵活而强大的日志记录机制 但是其复杂的配置过程和内部概念往往令使用者望而却步
)JDK LoggingFramework
继Log J之后 JDK标准委员会将Log J的基本思想吸收到JDK当中 在JDK 中发布了第一个日志框架接口 并提供了一个简单实现
)CommonsLoggingFramwork
该框架同样是Apache基金会项目 其出现主要是为了使得Java项目能够在Log J和JDK lLoggingFramework的使用上随意进行切换 因此该框架提供了统一的调用接口和配置方法
系统设计
由于Log J得到广泛应用 从使用者的角度考虑 本文所设计的框架 采用了部分Log J的接口和概念 但内部实现则完全不同 使用Java实现日志框架 关键的技术在于前面提及的日志框架特性的内部实现 特别是 日志的分类和级别 日志分发框架的设计 日志记录器的设计以及在设计中的高性能和高稳定性的考虑
系统架构
日志系统框架可以分为日志记录模块和日志输出模块两大部分 日志记录模块负责创建和管理日志记录器(Logger) 每一个Logger对象负责按照不同的级别(LoggerLevel)接收各种记录了日志信息的日志对象(LogItem) Logger对象首先获取所有需要记录的日志 并且同步地将日志分派给日志输出模块 日志输出模块则负责日志输出器(Appender)的创建和管理 以及日志的输出 系统中允许有多个不同的日志输出器 日志输出器负责将日志记录到存储介质当中 系统结构如下图 所示
相关参考
Java框架研究——JSF与Struts的异同 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! S
探讨与比较Java和.NET的事件处理框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!事件驱动模
知识大全 Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计
Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让
用ASP.NET将网页错误信息写入系统日志 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设计网
Spring框架的设计理念与设计模式分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Spri
使用特定的包在Java中高效处理日志记录 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这几天由
1.入侵探测器盲区边缘与防护目标间的距离不得小于5m。 2.入侵探测器启动摄像机或照相机的同时,应联动应急照明。 3.报警系统主机应具备中央处理器和存储器,应能够存储控制程序和运行日志信息,应能独
1.入侵探测器盲区边缘与防护目标间的距离不得小于5m。 2.入侵探测器启动摄像机或照相机的同时,应联动应急照明。 3.报警系统主机应具备中央处理器和存储器,应能够存储控制程序和运行日志信息,应能独
Java学习---集合框架 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 集合框架概述集合框架是
如何学好java程式设计学好只能有空就学习毕竟现在网际网路技术发展的也快,技术拓展也需要跟上层次,所以要不断的学习,假如说是你刚要去培训建议你多敲程式码在加上理论的了解.这样才能好好的了解,自己也懂得