配置Log4j

本文介绍了一个简单的JavaWeb项目中使用log4j进行日志记录的方法,包括如何在web.xml中配置日志文件路径及刷新时间,以及log4j.properties文件的具体配置细节。

最近做一个Java Web项目,使用log4j写日志,在网上找了好多天的配置方法,终于弄懂了log4j的日志配置方式。


我的配置很简单,只有控制台日志,以及文件日志(可以将不同级别的日志存放到不同的文件,我的配置是将所有日志存放在同一文件中)。


配置分两步:

web.xml配置

此主要是配置日志配置文件的路径,以及项目根目录变量。我的配置如下:

  <!-- 定义应用的根目录 环境变量,系统会将应用根目录存放在webAppRootKey定义的value中,此处是存放在变量webapp.root中-->
  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>webapp.root</param-value>
  </context-param>

  <!-- 设置日志配置文件的路径 -->
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>WEB-INF/log4j.properties</param-value>
  </context-param>
  <!-- 日志配置文件刷新时间,由于改了日志配置文件后不需要重启,因此系统会定时去读取配置 -->
  <context-param>
    <param-name>log4jRefreshInterval</param-name>
    <param-value>6000</param-value> <!-- 单位为毫秒 -->
  </context-param>
  <!-- 日志配置文件处理模块,注意该 listener需要放在spring的Listener之前。 -->
  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
注意:在web.xml文件中最好要配置webAppRootKey,如果不配置此值,此将是默认值“”,当部署多个项目到同一机器上后,每个项目都使用同一路径,将产冲突。

log4j日志配置文件

我的配置如下:

# ALL 表示输出所有级别的日志,可取的值有DEBUG,INFO,WARN,ERROR,FATAL
# stdout表示要输出控制台日志,此只是一个变量,名字可以不取这个,可以取你想取的值。在后面会用到这个
log4j.rootLogger=ALL,<span style="color:#FF0000;">stdout</span>,<span style="color:#3366FF;">logfile</span>


###  output to the console ###
#以下中的stdout是在log4j.rootLogger中定义的
log4j.appender.<span style="color:#FF0000;">stdout</span>=org.apache.log4j.ConsoleAppender
#控制台日志通过System.out输出
log4j.appender.<span style="color:#330033;">stdout</span>.Target = System.out
#要输出的日志级别
log4j.appender.stdout.Threshold = INFO
#指定布局模式,应该与log4j.appender.stdout.layout.ConversionPattern有关,一般按下边这样进行设置就行了
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p]-[%t:%r] %m%n

### Output to the log file ###
# RollingFileAppender表示文件大小到达指定尺寸的时候产生一个新的文件
# 还可以取值DailyRollingFileAppender,表示每天产生一个日志文件
log4j.appender.<span style="color:#3333FF;">logfile</span>=org.apache.log4j.RollingFileAppender
# webapp.root是在web.xml中配置的<context-param> <param-name>webAppRootKey</param-name> 配置的
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/gkpy.log
# 指定单个文件的大小,单位还可以KB
log4j.appender.logfile.MaxFileSize=8MB
# MaxBackupIndex: option determines how many backup files are kept before the oldest is erased. 
# This option takes a positive integer value. If set to zero, then there will be no 
# backup files and the log file will be truncated when it reaches 
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.Threshold = ALL 
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p]-[%t:%r] %m%n


在elipse中运行tomcat时,日志是放在WorkSpace的临时目录下,并不是放在项目目录下。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值