Log4j快速入门帮助文档.doc_第1页
Log4j快速入门帮助文档.doc_第2页
Log4j快速入门帮助文档.doc_第3页
Log4j快速入门帮助文档.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。log4j使用方法下面介绍的是log4j一些理论方面的知识,读者觉得枯燥的话可以跳过本节直接阅读第三节实例部分。1、定义配置文件首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件perties(键=值)。下面将介绍使用perties文件作为配置文件的方法:配置根Logger,其语法为:0log4j.rootLogger = level , appenderName, appenderName, 其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。配置日志信息输出目的地Appender,其语法为:log4j.appender.appenderName = .of.appender.classlog4j.appender.appenderName.option1 = value1log4j.appender.appenderName.option = valueN其中,Log4j提供的appender有以下几种:org.apache.log4j.ConsoleAppender(控制台),org.apache.log4j.FileAppender(文件),org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)配置日志信息的格式(布局),其语法为:log4j.appender.appenderName.layout = .of.layout.classlog4j.appender.appenderName.layout.option1 = value1log4j.appender.appenderName.layout.option = valueN其中,Log4j提供的layout有以下几种:org.apache.log4j.HTMLLayout(以HTML表格形式布局),org.apache.log4j.PatternLayout(可以灵活地指定布局模式),org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r 输出自应用启动到输出该log信息耗费的毫秒数%c 输出所属的类目,通常就是所在类的全名%t 输出产生该日志事件的线程名%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%dyyy MMM dd HH:mm:ss,SSS,输出类似:2002年10月18日22:10:28,921%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)2、在代码中使用Log4j得到记录器使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:public static Logger getLogger( String name)通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )读取配置文件当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。例:PropertyConfigurator.configure(.perties)DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。插入记录信息(格式化日志信息)当上两个必要步骤执行完毕,就可轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:Logger.debug ( Object message ) ;L ( Object message ) ;Logger.warn ( Object message ) ;Logger.error ( Object message ) ;log4j范例程序下面将使用一个最简单的范例程序来进一步说明log4j的使用方法。程序代码如下:import org.apache.log4j.*;public classLogTeststaticLogger logger = Logger.getLogger(LogTest.class.getName();publicstaticvoidmain(String args)PropertyConfigurator.configure ( “.perties”);logger.debug(Debug .);(Info .);logger.warn(Warn .);logger.error(Error .);程序说明:static Logger logger = Logger.getLogger(LogTest.class.getName();就是创建一个属于LogTest类的Logger对象,创建时要告知Logger你当前的Class是什么。PropertyConfigurator.configure ( “perties”)就是说使用当前工程目录下的src文件夹中的perties文件作为配置文件。若将perties放在工程根目录下也可不写此句,程序会自动找到配置文件。logger.debug就是输出debug的信息,就是输出提示信息,logger.warn就是显示警告信息,logger.error就是显示错误信息。下面是配置文件perties的内容:log4j.rootCategory=DEBUG, stdout,Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p (%F:%L) - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=log.txtlog4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%dyyyy MMM dd HH:mm:ss%-5p %c - %m%n程序说明:log4j.rootCategory=DEBUG, stdout,R就是说我要显示所有优先权等於和高于Debug的信息。stdout,”R”表示我定义了两个输出端(随便什么名字都好)。下面的三行说stdout输出端其实是标准输出Console,也就是屏幕。输出的格式是PatternLayout。转换方式是%5p (%F:%L) - %m%n,即前五格用来显示优先权,再显示当前的文件名,加当前的行数。最后是logger.debug()或()或logger.warn()或logger.error()里的信息。%n表示回车空行。再加上下面六行则log信息不光显示在屏幕上,而且将被保存在一个叫log.txt的文件里,文件最大为100KB。如果文件大小超过100KB,文件会被备份成log.txt.1,新的log.txt继续记录log信息。接下来我们可以改变perties,而不需重新编译就可以控制log信息是否显示、log信息的输出端类型、输出方式、输出格式,等等。举例如下:在perties文件里把log4j.rootCategory=DEBUG,stdout,R改写成log4j.rootCategory=OFF, stdout,R,这样所有的log信息都不会显示了;解决了本文开始提出的问题。在perties文件里把log4j.rootCategory=DEBUG,stdout,R改写成log4j.rootCategory=INFO, stdout,R,这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示;在web程序中使用log4j注意问题1、由于jsp或servlet在执行状态时没有当前路径概念,所有使用PropertyConfigurator.configure(String)语句找perties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用servletcontext.getrealpath(string)语

温馨提示

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

评论

0/150

提交评论