JSP基础与案例开发详解:第10章 Log4j的应用_第1页
JSP基础与案例开发详解:第10章 Log4j的应用_第2页
JSP基础与案例开发详解:第10章 Log4j的应用_第3页
JSP基础与案例开发详解:第10章 Log4j的应用_第4页
JSP基础与案例开发详解:第10章 Log4j的应用_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第10章 Log4j的应用学前提示本章将从什么是Log4j、Log4j的配置、Java程序中如何调用Log4j等方面来讲解Log4j的使用。知识要点Log4j下载与配置Log4j的使用Log4j的性能调优commons-logging的使用210.1Log4j概述日志(Log)是指记录程序运行时状态信息的文本。在应用程序中进行日志记录,主要有以下几个目的:监视代码中变量的变化情况,周期性地记录到文件中,供其他应用进行统计和分析工作。将代码运行时的轨迹作为日后审计的依据。担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。Log4j是Apache的一个开放源代码项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、事件记录器、UnixSyslog守护进程等;用户也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。并且可以通过配置文件灵活地设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。310.1Log4j概述Log4j中有三个主要的组件,它们分别是Logger、Appender和Layout,即日志写入器、日志输出终端和日志布局模式。Log4j的类结构如图10.1所示。410.1.1日志记录器(Logger)org.apache.log4j.Logger类的实例是用来取代System.out或者System.err的日志写出器的,主要用来输出日志信息。可以通过以下方式来获取Logger类的实例://根据指定名称来获取一个日志记录器实例Loggerlogger=Logger.getLogger(Stringname);//根据指定的类信息中的类名获取一个日志记录实例Loggerlogger=Logger.getLogger(Classclazz);获取Logger实例之后,就可以使用它提供的以下方法来记录日志了:参见教材P343510.1.1日志记录器(Logger)Log4j中定义了5种日志输出优先级别,来灵活控制输出的日志内容,按照优先级别由高到低排列,如表10.1所示。610.1.2日志输出目的地(Appender)Appender的功能是把格式化好的日志信息输出到指定的目的地中。执行日志输出语句时,Logger对象将接收来自日志语句的记录请求,然后发送至Appender,Appender将输出结果写入到用户指定的目的地。日志目的地是通过Log4j的配置文件来指定的。对于不同的日志目的地,Log4j提供不同的Appender类型的实现类。常用的Appender实现类包括:用于控制台的org.apache.log4j.ConsoleAppender。用于文件的org.apache.log4j.FileAppender。org.apache.log4j.RollingFileAppender——文件到达指定大小时产生一个新的文件。org.apache.log4j.DailyRollingFileAppender——每天产生一个日志文件。用于以流格式发送到任意位置的org.apache.log4j.WriterAppender。用于添加到数据库的org.apache.log4j.jdbc.JDBCAppender。用于邮件发送的.SMTPAppender。710.1.3日志格式化器(Layout)Layout用来把日志消息按指定的格式格式化成字符串。而具体的格式是通过Log4j的配置文件来配置的。Log4j中提供用来格式化输出结果的各种布局实现类。org.apache.log4j.SimpleLayoutorg.apache.log4j.PatternLayoutorg.apache.log4j.TTCCLayoutorg.apache.log4j.HTMLLayoutorg.apache.log4j.xml.XMLLayout810.2Log4j的下载与环境搭建Log4j的下载地址是/dist/logging/log4j/,下载页面如图10.2所示。解压此文件,打开解压后的文件夹,如图10.3所示。将dis\lib目录下的log4j-1.2.9.jar放置到项目的classpath中,对于Web项目,则需要将其放置于项目的WEB-INF\lib目录下,便完成了Log4j的配置。910.3Log4j的使用Log4j受众多、用户青睐的原因之一,是因为它可以使用配置文件,使应用程序能更加灵活地配置log日志输出方式,包括输出优先级、输出目的地、输出格式。所以本节首先介绍Log4j的配置文件,其次介绍它的使用技巧。1010.3.1Log4j的配置文件1.perties(1) 配置根日志记录器(2) 配置日志信息输出目的地Appender。(3) 配置日志信息的格式(布局)(4) 配置打印格式。(5) 其他设置。2.log4j.xml1110.3.2Log4j的使用当配置文件编写配置好之后,就可以使用Log4j的API进行日志记录了。它的使用也比较简单,在讲解之前,先打开docs\api目录下的index.html,这是Log4j的帮助文档,它有助于本小节的学习。帮助文档的首页如图10.5所示。1210.3.2Log4j的使用在Java代码中使用Log4j打印日志信息的具体步骤如下。(1) 获取记录器(2) 读取配置文件(3) 插入记录信息(格式化日志信息)下面通过用一个简单的实例程序来进一步说明Log4j的使用方法。新建名为LogTest.java的文件,程序代码如下:参见教材P350LogTest.java文件中所使用perties文件的代码清单如下:参见教材P3501310.4Log4j实例应用本例是在第8章中jstlinstance示例的基础上完成的,如果前面的示例没有完成,建议先完成第8章的程序。然后按照以下步骤进行修改。(1) 新建perties文件。(2) 修改StuServlet.java文件(3) 修改StuBeanDaoImpl.java文件(4) 部署程序,启动Tomcat服务,访问程序。1410.5Log4j的性能调优Log4j作为日志记录工具,它最终还是要在程序代码中添加信息输出语句。所以,对应用程序运行的性能肯定会有一些影响,具体影响因素如下:日志输出的目的地。日志的输出格式。日志的输出级别。1510.6使用commons-logging10.6.1commons-logging概述commons-logging是Apache组织下的一个开源日志项目。commons-logging在运行时能够帮我们自动选择适当的日志实现系统,这一点非常人性化。而且它甚至可以不需要配置就能自动选择适当的日志实现系统。1610.6.1commons-logging概述commons-logging在运行时:(1) 首先会在classpath下寻找自己的配置文件perties。如果找到,则会使用其中指定的Log实现类。(2) 如果找不到perties配置文件,则再查找是否已定义系统环境变量mons.logging.Log,找到则使用其定义的Log实现类。(3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类。(4) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类)。(5) 最后,如果还没找到,就使用commons-logging自己提供的一个简单的日志实现类SimpleLog。1710.6.2commons-logging的下载和环境搭建可以到/downloads/download_logging.cgi下载commons-logging包。下载页面如图10.11所示。单击页面中的“1.1.1.zip”链接,即可下载commons-logging-1.1.1-bin.zip到本地硬盘。解压此文件,打开解压后的文件夹,如图10.12所示。1810.6.3commons-logging的使用完成以上配置之后,就可以在项目中使用commons-logging了。使用前,还需要了解它的API。在commons-logging的API中需要关注一个抽象类和一个接口。(1) mons.logging.Logpublicvoiddebug(Objectmsg)publicvoiddebug(Objectmsg,Throwablet):publicbooleanisDebugEnabled()(2) mons.logging.LogFactorypublicstaticLoggetLog(Stringname)throwsLogConfigurationExcep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论