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()+"登录!");