在spring中集成log4j的方法:
1、Spring与Log4j的配置
在Web.xml中:
2、log4j的属性文件:log4j.properties
#log4j.rootLogger = [ level ] , appenderName, appenderName, ...
log4j.rootLogger = all, console, R
#Console
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#File
log4j.appender.R = org.apache.log4j.RollingFileAppender
log4j.appender.R.File = c:/log.txt
log4j.appender.R.MaxFileSize = 500KB
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
第一部分是log4j的总配置部分,all代表debug,info,error,fatal四种类型的信息都会输出。
第二部分控制台#Console
首先要使用log4j特定的包,这个没有什么好说,最后一句指明输出格式。一会儿大招对照输出结果就明白怎么回事了。
第三部分文件#File
log4j.appender.R.File=c:/log.txt是指这个Web工程错误日志皆输出到c:/log.txt。不要像网上那些大神输出一个什么.log后缀,关键是能够直接打开。
3、测试Log4j.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="org.apache.log4j.Logger"%>
<%
Logger.getLogger(this.getClass()).fatal("致命错误!");
Logger.getLogger(this.getClass()).error("出错信息!");
Logger.getLogger(this.getClass()).info("普通信息!");
Logger.getLogger(this.getClass()).debug("调试信息!");
%>
4、运行结果:
简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就
可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。
log4j使用方法
下面介绍的是log4j一些理论方面的知识,读者觉得枯燥的话可以跳过本节直接阅读第三节实例部分。
1、定义配置文件
首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:
①配置根Logger,其语法为:0
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。