日期:2014-05-19 浏览次数:20677 次
目前基本上没有哪个项目开发是不用到日志管理的,而目前大部分项目的日子管理都采用了apache的log4j,下面就简单介绍一下log4j在J2EE开发中的基本应用
第一步:配置log4j,先建立一个log4j.properties文件,一般放在类路径下面,文件的内容如下,具体一下参数比较简单就不详细说明,请自己百度,goolge搜一下
#log4j.rootLogger = [ level ] , appenderName, appenderName, ... log4j.rootLogger = DEBUG, console, R #level=INFO,all can be output #console is set to be a ConsoleAppender log4j.appender.console = org.apache.log4j.ConsoleAppender #console have four patterns #org.apache.log4j.HTMLLayout #org.apache.log4j.PatternLayout #org.apache.log4j.SimpleLayout #org.apache.log4j.TTCCLayout log4j.appender.console.layout = org.apache.log4j.PatternLayout #define the output type log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #file is set to output to a extra file log4j.appender.R = org.apache.log4j.RollingFileAppender #the absolute route of the log4j file log4j.appender.R.File = ${webapp.root}/WEB-INF/logs/kingcat.log #the size log4j.appender.R.MaxFileSize = 500KB #back up a file log4j.appender.R.MaxBackupIndex = 1 log4j.appender.R.layout = org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] - %m%n
?
第二步:建立好了文件后,下面就在web.xml文件中配置一下该文件,内容如下
<!-- 配置Log4J--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/config/log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>1800000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
?
注意:
<param-value>/WEB-INF/config/log4j.properties</param-value>
?
为log4j配置文件路径,默认从项目根目录开始,18000000为刷新Log4j配置文件的间隔,单位为millisecond,这样重新修改了log4j配置文件后就不用重启服务器
第三步:现在就可以在类里面使用了,简单如下,首先或的Logger对象,然后就调用方法即可
private static Logger logger = Logger.getLogger(PurviewAction.class); logger.error("获得所有权限时发生异常");
?
下面是网上关于log4j的一些说明:
首先需要在web.xml进行声明:
<!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->
<context-param>
? <param-name>webAppRootKey</param-name>
? <param-value>ssh.root</param-value>
</context-param>
这里的ssh是http://localhost:8080/ssh/
而root是系统开发目录中ssh/root
这样配置文件以及日志文件可以在spring的帮助下,放到开发环境中的任意位置
<!--由Sprng载入的Log4j配置文件位置-->
<context-param>
? <param-name>log4jConfigLocation</param-name>
? <param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
在这里定位配置文件,需要的是从root开始的绝对路径
<!--Spring默认刷新Log4j配置文件的间隔,单位为millisecond-->
<context-param>
? <param-name>log4jRefreshInterval</param-name>
? <param-value>60000</param-value>
</context-param>
<!--Spring log4j Config loader-->
<listener>
? <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
设置监听器
/////////////////
之后我们就可以配置log4j配置文件了
#先设置级别
log4j.rootCategory=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#在这里设置日志需要存放的位置,这里的变量就是我们在web.xml里设置的
log4j.appender.file.File=${ssh.root}/WEB-INF/logs/subject.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=0
log4j.appender.file.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.layout.ConversionPattern=[ssh] %p %t %c - %m%n
有了上面的配置,我们就可以查看日志了!
附加:
想把不同级别的日志信息输出到不同的文件:?
debug<info<warn<error<fatal