Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享
需求:系统上线,当用户提出报错信息或者某些信息有误时。开发人员可以通过日志文件查询当天的日志,定位错误原因,尽快解决。
日志以日期为界,每天生成一个日志文件,日志文件在tomcat服务器上的logs文件中。
有两种方案:方案1:在tomcat服务器的目录中生成日志文件
方案2:在项目的WEB-INFO目录中生成日志文件(有点配置简单,无须设置环境变量,在项目中配置即可),建议使用这种方式
项目的WEB-INFO目录生成日志文件:
介绍:
web.xml中webAppRootKey
1、 web.xml配置
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>
"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
可以用System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名
2、解决以下报错
部署在同一容器中的Web项目,要配置不同的<param-value>,不能重复,否则报类似下面的错误:
Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
意思是“webapp.root”这个key已经指向了项目1,不可以再指向项目2.
3、在运行时动态的找出项目的路径
在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log
就可以在运行时动态的找出项目的路径
步骤一:
配置项目的web.xml,如下:
步骤3:启动tomcat服务器,找到项目部署位置
tomcat服务器生成日志文件方法:
步骤一:
配置tomcat的环境变量(目的可以简化服务器的绝对路径,将硬编码变灵活)
配置两个变量名:1) CATALINA_BASE : D:\tomcat\apache-tomcat-6.0.14 (tomcat的安装路径)
2) CATALINA_HOME : D:\tomcat\apache-tomcat-6.0.14 (tomcat的安装路径)
path的配置:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
步骤二:
配置log4J的properties文件,如下
log4j.rootLogger=WARN, stdout,pay-log
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
#日志文件的配置
log4j.logger.pay-log=Info,pay-log
log4j.appender.pay-log=org.apache.log4j.DailyRollingFileAppender
#因为配置了tomcat的环境变量,所以这里写成${catalina.home}
log4j.appender.pay-log.File=${catalina.home}/logs/bhdcyy/tomcat_log.log
#以天为单位生成日志配置,隔日生成的日志如:tomcat_log.log20141225.log
log4j.appender.pay-log.DatePattern=yyyyMMdd'.log'
log4j.appender.pay-log.Threshold =DEBUG
log4j.appender.pay-log.layout=org.apache.log4j.PatternLayout
log4j.appender.pay-log.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss}[%c] [%t\:%r] - [%p] %m%n
#ibatis框架的日志配置
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
步骤三:
配置web.xml文件
步骤四:
启动服务器:
打开tomcat指定的日志目录
将系统日期更改到隔日,重新登录。操作业务