文档详情

基于log4j日志灵活配置.doc

发布:2018-07-04约6.23千字共6页下载文档
文本预览下载声明
基于log4j的灵活日志配置一、概述应用程序中的日志记录主要基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。经验表明日志记录是开发周期中的重要组成部分。最简单的做法就是在代码中嵌入许多的打印语句,但是这样打印语句会充斥代码的主体,显然不是一个好方法。因此,使用成熟的框架例如Log4j,则会更具灵活性。Log4j 框架是用 Java 语言编写的标准日志记录框架。作为 Jakarta 项目的一部分,它在 Apache 软件许可证(Apache Software License)下分发,以速度和灵活性为中心概念:Log4j 环境是完全可配置的,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。Log4j由三个重要的部件构成:记录器(Loggers)、输出源(Appenders)和布局(Layouts)。记录器按照布局中指定的格式把日志信息写入一个或多个输出源。输出源可以是控制台、文本文件、XML文件或Socket,甚至还可以把信息写入到Windows事件日志或通过电子邮件发送。我们可以通过配置文件来部署这些组件。其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。本文从描述 log4j 体系结构的主要组件着手。然后是描述基本用法和配置的简单示例。二、使用说明2.1定义配置文件Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java属性文件做为配置文件的方法:2.1.1. 配置记录器(logger)Log4j的记录器包含两种,一个根记录器它必须且永远存在,且不能通过名字检索或引用,在配置文件中,根记录器定义方法如下:  log4j.rootLogger = [ level ] , appenderName, appenderName, … 注:Level是记录器的级别,它是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别:ERROR、WARN、INFO、DEBUG( DEBUG INFO WARN ERROR FATAL)如果一条log信息的级别,大于等于记录器的级别值,那么记录器就会记录它。例如level被设置为INFO级别,那么应用程序中所有的DEBUG的日志信息将不被打印出来。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。 appenderName是输出源的名字,它指定日志信息输出到哪个地方。您可以为一个记录器指定多个输出源。除了根记录器之外,log4j允许程序员定义其它对多个记录器,每个记录器有自己的名字如:  log4j.logger.loggerName = [ level ] , appenderName, appenderName, … 在Log4J中Logger是具有层次关系的,Log4j配置的记录器之间的遵循“父子关系”,记录器之间通过名字来表明隶属关系(或家族关系),它们有一个共同的根:rootLogger,其它Logger遵循类似包的层次,例如: static Logger root = Logger.getRootLogger(); static Logger log1 = Logger.getLogger(cc); static Logger log2 = Logger.getLogger(cc.ejb); static Logger log3 = Logger.getLogger(cc.ejb.my.TestApp);注:以上代码中root是所有log1、log2、log3的祖先,log1是log2的父亲,log2是log3的父亲,因此一般情况下,仅需要配置好rootLogger,其它子记录器都会从中继承rootLogger的配置。如果修改了rootLogger的配置,其它所有的子记录器也会继承这种变化。这样就大大地方便了配置。2.1.2配置日志信息输出(Appender)log4j 还允许日志记录请求打印到多个输出目的地,按 log4j 的叫法是输出源。一个记录器可以有多个输出源。一条log信息如果可被这个记录器处理,则该记录器会把这条信息送往每个它所拥有的输出源,以及层次结构中更高级的输
显示全部
相似文档