今天重点把日志功能理解了一下,对于一个web网站来说,日志是很重要的,特别是那些不太好的服务器提供商,(xinet),我需要把日志存放在webroot下。
怎么存放呢,
项目里要导入什么包,你知道的。。。
将log4j。properties放到web-inf下,当然这么放的话,浏览器上需要请求出能访问得到了
我的log4j.properties里这么写的
log4j.rootLogger=ERROR,zc511
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n
log4j.logger.zc511=ERROR
log4j.appender.zc511.Encoding=UTF-8
log4j.appender.zc511=org.apache.log4j.DailyRollingFileAppender
log4j.appender.zc511.datePattern=.yyyy-MM-dd
log4j.appender.zc511.Threshold = ERROR
log4j.appender.zc511.append=true
log4j.appender.zc511.File=${app1.root}/WEB-INF/logs/error.log
log4j.appender.zc511.layout=org.apache.log4j.PatternLayout
log4j.appender.zc511.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss,SSS}] %l%n - %m%n
web.xml下如下配置
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>app1.root</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
另外在这里还要配置监听器,因为没有放置在src目录下。
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
这样运行的时候,将会在/WEB-INF/logs/error.log下生成日志文件
当然这里我也不理解的地方,我飘红色的地方,为什么要那么设置呢,在一个tomcat下如果有多个项目那么这个红色的地方名字(webAppRootKey)不能重复。所以我在这里给了个别的名字app1.root 那么这个名字到底是什么意思呢?这就请教那位大虾了。。。