1.在web.xml中加入以下片段
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener>
其中log4jConfigLocation参数是指定配置文件的位置,可以用classpath:指定,也可以指定文件路径
例如:/WEB-INF/props/log4j.properties,Log4jConfigListener会到这个配置里读取参数,并且一个线程将会被启动用来扫描配置文件的变化,每隔log4jRefreshInterval的时间就会扫描一次。
个人认为,在web.xml里配置只是用来监听配置文件的变化,如果不考虑日志配置文件的变化那么不需要在此配置,只要有log4j.properties在classpath下就可以使用log4j来记录日志。
2.配置log4j.properties 文件
#log4j.rootLogger = [ level ] , appenderName, appenderName, ...
log4j.rootLogger = INFO, console, R
#level=INFO,all can be output,info是日志级别,console, R是日志输出方式或者位置,接下来的定义会基于这两个字符串的值.
#console is set to be a ConsoleAppender,将在rootLogger中声明的输出方式指定为apache的一个类
log4j.appender.console = org.apache.log4j.ConsoleAppender
#console have four patterns,指定console的输出布局格式有四种:
#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 R日志输出方式的配置
log4j.appender.R = org.apache.log4j.RollingFileAppender
#the absolute route of the log4j file
log4j.appender.R.File = /log.txt
#the size 文件大小##
log4j.appender.R.MaxFileSize = 500KB
#back up a file
log4j.appender.R.MaxBackupIndex = 1
#指定采用PatternLayout方式输出
log4j.appender.R.layout = org.apache.log4j.PatternLayout
# -X号:X信息输出时左对齐;
# %p:日志信息级别
# %d{}:日志信息产生时间
# %c:日志信息所在地(类名)
# %m:产生的日志具体信息
# %n:输出日志信息换行
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] - %m%n
#例如这行日志:
#2014-04-22 14:58:40 [com.spring.context.test.TestSpringContextUtil]-[INFO] TestSpringContextUtil is constructed!
#2014-04-22 14:52:43 %-d{yyyy-MM-dd HH:mm:ss} [com.spring.context.test.TestSpringContextUtil][%c] - [INFO][%p] TestSpringContextUtil is constructed! %m
#%n
3.在类中声明引入 import org.apache.log4j.Logger,声明logger
private static Logger logger = Logger.getLogger(ClassName.class);
引用logger
logger.info("欢迎"+user.getName()+"登录!");
转载于:https://blog.51cto.com/hongtaoer/1400526