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