配置Log4j

来源:互联网 发布:淘宝 破冰仪式 编辑:程序博客网 时间:2024/05/18 00:33

最近做一个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# 指定单个文件的大小,单位还可以KBlog4j.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=3log4j.appender.logfile.Threshold = ALL log4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}-[%p]-[%t:%r] %m%n

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




0 0
原创粉丝点击