Bai_yk的gravatar头像
Bai_yk2015-03-20 13:33:11

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,如下:

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享步骤2:配置log4j的配置文件

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享

步骤3:启动tomcat服务器,找到项目部署位置

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享

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;

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享

步骤二:

配置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文件

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享

步骤四:

启动服务器:

打开tomcat指定的日志目录

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享

将系统日期更改到隔日,重新登录。操作业务

Apache log4j日志记录到文件中,实现每天一个文件,两种实现形式的教程分享


打赏

顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友