Bai_yk的gravatar头像
Bai_yk 2015-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日志记录到文件中,实现每天一个文件,两种实现形式的教程分享


打赏

最代码最近下载分享源代码列表最近下载
最代码最近浏览分享源代码列表最近浏览
浪里格朗  LV4 2023年1月31日
落后就要挨打  LV26 2023年1月13日
CoderMars  LV13 2022年8月2日
wsupsup  LV16 2022年4月26日
zzz9985688  LV10 2021年11月19日
zzzzzzzzhasdas  LV13 2021年11月9日
黄雨地里  LV4 2021年10月6日
jachyn  LV6 2021年6月12日
缘------  LV9 2021年3月30日
ws19991025  LV2 2020年7月7日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友