每一个大型应用中都拥有它自己的日志跟踪函数库。正因为如此,在1996年初,E.U. SEMPER 项目决定要建立自己的日志API。经过无数次的改进,逐渐形成了log4j,一个运行在java平台上的日志记录包。该包遵循了the Apache Software License。最新版本的log4j,包括全部的源代码,class文件以及文档都可以登陆http://jakarta.apache.org/log4j
来访问。
在代码中嵌入日志语句是一种低级的调试方法。但调试器并不是任何时候都管用的,在这时,日志也许就成了唯一的调试手段。这种情况在多线程应用以及大型分布式应用中比较常见。经验表明,日志处理在软件开发周期中是一个重要的组件。它提供了众多的好处,它能够精细地提供程序在执行时期的应用上下文环境。只要在代码中使用了日志,日志信息就会自动的输出。而且日志输出能够被保存下来,以备日后追踪研究。除了可以在项目开发中使用,丰富日志处理包也可以被当初审核工具来使用。
就像Brian W. Kernigan和Rob Pike 在那本 “The Practice of Programming”书中讲到的:
懒得翻译了,总之是废话一堆。
日志处理也有它的弊端:降低了应用程序的运行速度。如果输出太多日志信息的话,会造成满屏的信息。为了打消这种顾虑,在设计上,log4j尽量实现快速和灵活。由于日志处理通常不是应用程序所重点关注的,因此log4j被设计成简单理解而易于使用。
安装
最新版的log4j可以从下面的URL中下载。
http://jakarta.apache.org/log4j/docs/download.html
发行版有两种格式: zip 和 tar.gz。windows平台上的开发者下载zip包解压后,应该能看到一个文件 LOG4J_HOME/dist/lib/log4j-VERSION.jar,这里LOG4J_HOME指得是你将下载下来的压缩包解压后的目录全路径,VERSION指的是版本号,随下载的版本不同而变化。要使用log4j,只需要将上面提到的jar包纳入你的ClassPath路径中。
运行范例
这本书附带了一些可以实际操作的例子。代码可以在MANUAL_HOME/examples/ directory下找到, MANUAL_HOME就是你解压manual文档的根目录。为了便利,class文件都放在了HOME/examples/classes/ directory下面。如果要编译这些例子,你必须将log4j-VERSION.jar 和 MANUAL_HOME/examples/classes目录都纳入ClassPath中需要注意的是有些例子使用了DOMConfigurator,所以你可以还需要一个JAXP解析器。
进入目录MANUAL_HOME/examples/ 调用ant命令就可以编译这些例子了,注意除了ant库,其他所有需要的包都在lib/ directory目录下。
分享到:
相关推荐
离散数学第一章 介绍 交大版课件资源 离散数学 第一章
通信原理第一章PPt,重点介绍通信原理有关知识和要点
第一章流程模拟软件介绍,第一章流程模拟软件介绍课件,第一章流程模拟软件介绍PPT
第一章 介绍、文件 第二章 设计组管理 第三章 电路原理图设计基础 第四章 原理图设计 第五章元件库编辑 第六章 多张电路图设计 第八章 印刷电路板基础 第九章 PCB编辑器 第十章制作印刷电路板 第十一章绘图工具介绍 ...
西电出版的陈生潭老师的信号与系统教材对应的课件,第一章介绍信号与系统的概念
前六章是图论,第一章介绍图的基本概念及其代数表示方法,第二章至第六章分别详细讨论了道路与回路、树、平面图与图的着色、匹配与网络流、图的连贯性等图的主要内容,并且将它们与计算机的应用紧密结合,分...
第一章介绍了单片机的基本概念和结构,包括单片机的定义、分类、组成部分和工作原理。第二章介绍了单片机的指令系统,包括指令格式、指令类型和指令执行过程。第三章介绍了单片机的存储器组织,包括存储器类型、...
第一章 关于计算机图形学的简单介绍,大致讲解了这样一本书的大概
第一章 介绍 第二章 登录窗口 1.1 组件 1.2 事件 第三章 教师窗口 3.1 功能介绍 3.1.1 点名 3.1.2 查询点名记录:搜索选中科目的点名记录 第四章 管理员窗口 4.1 功能介绍 4.1.1 添加学生 4.1.2 删除、修改、查询...
第一章介绍了利用 CBuilder 5 编制应用程序的一些基础知识, 以及如何利用 CBuilder 5 编制简单的 Windows应用程序; 第二章介绍了 CBuilder 5 中基本的用途和使用方法, 熟练地利用 ActiveX控件开发应用程序 是每一...
全书共分九章:第一章介绍了电能质量问题及其发展动态;第二章详细介绍了非线性负荷及其用电特性;第三章介绍了分析电能质量干扰响应特性的一种工程方法——等效冲击电流分析法;第四章介绍了贯穿源特性与系统响应...
第一章介绍常见的Java软件以及数据库和MyEclipse开发工具的下载和安装方法; 第二章则带领读者通过手工和开发工具对比的方式开发简单的应用; 第三章对Eclipse 开发环境进行介绍;第四章则介绍如何用 MyEclipse 管理...
什么是“计算机安全”?广义地讲,安全是指防止其他人利用、借助你的计算机或外围设备,做你...然而,这一定义却引出了我们不得不面临的一些极为重要的问题,这些问题是任何希望设置一种有效的安全机制的人必须回答的。
第一章介绍了 TwinCAT 2 软件、 Information System 帮助系统的安装; 第二章至第六章介绍了扫描硬件,软件编程下载等一系列基本操作,让读者可以快速掌 握最基本的 TwinCAT 软件使用和操作; 第七章至第九章分享...
第一章介绍了 TwinCAT 2 软件、 Information System 帮助系统的安装; 第二章至第六章介绍了扫描硬件,软件编程下载等一系列基本操作,让读者可以快速掌 握最基本的 TwinCAT 软件使用和操作; 第七章至第九章分享了...
第一章介绍了工人神经元网络的发展历史和它的主要特点,第二章和第三章介绍了生物神经元网络和人工神经元网络的基本原理,第四章至第十章讲述了几种主要的人工神经元网络的原理和具体计算方法,第十章介绍了人工神经...
Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装;该文档介绍从javascirpt、V8、优缺点、涉及领域、知识点,阐述了Node.js的开发涉及到领域和潜力。