java web配备Log4j出现 setFile出错处理

java web配置Log4j出现 setFile出错处理

Java web中经常出现的一个错误

java.io.FileNotFoundException: /WEB-INF/logs/logs.log 

 

配置的输出的文件目录如下

log4j.appender.logfile.File=${b5m-client-admin.root}/WEB-INF/logs/logs.log

 

出现这个问题有两个原因

1.Log4jConfigListener 配置放在了ContextLoaderListener的下面

2.WEB-INF 下面没有建立一个logs文件夹

 

下面给出一个配置,webAppRootKey

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>client-admin.root</param-value>

  </context-param>

  

  <context-param>

  <param-name>log4jConfigLocation</param-name>

  <param-value>classpath:log4j.properties</param-value>

  </context-param>

  

  <listener>

  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

  </listener>

  

  <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

 

log4j.properties文件

log4j.rootLogger=INFO,A1,logfile

log4j.appender.A1=org.apache.log4j.ConsoleAppender 

log4j.appender.A1.layout=org.apache.log4j.PatternLayout 

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %C:%L [\u65E5\u5FD7\u4FE1\u606F] %m%n

 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=${client-admin.root}/WEB-INF/logs/logs.log

log4j.appender.logfile.MaxFileSize=5MB

log4j.appender.logfile.MaxBackupIndex=5

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c][%t] - %m%n

 

关于webAppRootKey 可以参考这篇文章 http://teamojiao.iteye.com/blog/422119