log4j配置

     我一直在用easyjweb开发各类项目,但是我也没有仔细研究过生成的项目中日志是怎么配置的,因为用easyjweb开发项目的时候它给我们提过了很 多的方便,整个项目的建立只要一个命令就可以生成,并且他它能够直接导入eclipse中使用,里面复杂的配置就不用我们来操心了。我们只需要建立具体的 域对象就可以了,这个是针对easyjweb生成的ejs项目(EasyJWeb+JPA+Spring)。下面我对生成的项目中的日志配置说说我的理 解。

 

首先,我就开门见山了。先看看生成项目的log4j.properties代码吧!
log4j.logger.org.apache=ERROR,EJS
log4j.logger.org.springframework=ERROR,EJS
log4j.logger.org.hibernate=ERROR,EJS
log4j.logger.com.easyjf=INFO,EJS
log4j.appender.EJS = org.apache.log4j.ConsoleAppender
log4j.appender.EJS.layout = org.apache.log4j.PatternLayout
log4j.appender.EJS.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n

可能你会看不懂上面的配置,这个文件是被放在源代码的跟目录下面,最后将会通过编译器拷到classes的目录下面,这样在我们调试程序的时候就可以看到具体的日志信息了。

先学习一下log4j的基础知识。
Log4j中有三个主要的组件,它们分别是 Logger、Appender和Layout,Log4j 允许开发人员定义多个Logger,每个Logger拥有自己的名字,Logger之间通过名字来表明隶属关系。


Appender则是用来指明将所有的log信息存放到什么地方,Log4j中支持多种appender,如   console、files、GUI components、NT Event Loggers等,一个Logger可以拥有多个Appender,也就是你既可以将Log信息输出到屏幕,同时存储到一个文件中。
Log4j提供的appender有以下几种:
  org.apache.log4j.ConsoleAppender(控制台)
  org.apache.log4j.FileAppender(文件)
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) 

ayout的作用是控制Log信息的输出方式,也就是格式化输出的信息。
配置日志信息的格式(布局),其语法为:
  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1 = value1
  ....
  log4j.appender.appenderName.layout.option = valueN 

 Log4j中将要输出的Log信息定义了5种级别,依次为DEBUG、INFO、WARN、ERROR和FATAL,当输出时,只有级别高过配置中规定的 级别的信息才能真正的输出,这样就很方便的来配置不同情况下要输出的内容,而不需要更改代码,这点实在是方便啊。

以我们的例子中的代码为例:
首先我们自定义了一个appender,名为EJS,表示日志的输出,如:

log4j.rootCategory=ERROR, EJS(转者另加)
log4j.appender.EJS = org.apache.log4j.ConsoleAppender
log4j.appender.EJS.layout = org.apache.log4j.PatternLayout
log4j.appender.EJS.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n

log4j.appender.EJS = org.apache.log4j.ConsoleAppender说明appender的输出的目的地,这里指“控制台”;
log4j.appender.EJS.layout = org.apache.log4j.PatternLayout说明appender的输出的格式,这里指“可以灵活地指定布局模式” ;
log4j.appender.EJS.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n说明appender的输出的参数,这里说明“日志输出参数 ”。

可以看到定义好的appender就可以在下面的代码中运用了。
log4j.logger.org.apache=ERROR,EJS
log4j.logger.org.springframework=ERROR,EJS
log4j.logger.org.hibernate=ERROR,EJS
log4j.logger.com.easyjf=INFO,EJS
 下面定义一个了四个logger,这四个logger分别代码一个项目中的包名如:
Org.apache;
org.springframework;
org.hibernate;
Com.easyjf
这就可以表明在这些包下面的类都会被上面的四个logger所控制。
这就可以说明我们可以在不同的包中设置不同的日志控制了。


原文来自:http://www.easyjf.com/blog/html/20080223/1245184.html


你可能感兴趣的:(apache,spring,Hibernate,log4j,jpa)