1.基础知识: 
Log4j的中文文档 (这是根据最新的log4j(jakarta-log4j-1.2.8)的开发包自带文档的manual翻译的) 
http://dev.csdn.net/develop/article/29/29441.shtm
对应的英文原文: 
Short introduction to log4j 
http://logging.apache.org/log4j/docs/manual.html

2.步骤 
1)log4j.jar放到jsp-examples\WEB-INF\lib下; 
2)在jsp-examples下新建properties\log4j.properties; 
3)log4j.properties内容: 
#log4j.properties

log4j.rootLogger=info, A1

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.file=${webappHome}/logs/tomcat_log_ 
log4j.appender.A1.DatePattern=yyyy-MM-dd'.html' 
log4j.appender.A1.layout=org.apache.log4j.HTMLLayout

4)“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-examples\”新建上述属性文件所设置的存放

日志文件的logs文件夹; 
注释: 
tomcat_log_是文件名,可以不用预先新建该文件;如果预先建了,则日志文件直接为tomcat_log_2007-

03-05.html格式,如果之前无该文件,在第一次生成的日志文件名称为tomcat_log_;

5)进入目录“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-examples\WEB-INF\classes”,新

建“log4j\Log4JInit.java”;

6)Log4JInit.java内容: 
package log4j; 
import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 
import org.apache.log4j.*;

public class Log4JInit extends HttpServlet {

public void init() throws ServletException { 
String prefix = getServletContext().getRealPath("/"); 
String test = getServletContext().getRealPath(""); 
System.out.println(prefix); 
System.out.println(test); 
System.setProperty("webappHome", test); 
String file = getServletConfig().getInitParameter("log4j-config-file"); 
System.out.println(prefix+file); 
// 从Servlet参数读取log4j的配置文件 
if (file != null) { 
PropertyConfigurator.configure(prefix + file); 
}


public void doGet(HttpServletRequest request,HttpServletResponse response)throws 
IOException, ServletException {}

public void doPost(HttpServletRequest request,HttpServletResponse response)throws 
IOException, ServletException {}

}

注意: 
“System.setProperty("webappHome", test);”这行代码要出现在“PropertyConfigurator.configure

(prefix + file);”这行代码之前;因为这样才给"webappHome"设置值了,log4j.properties文件中的“

log4j.appender.A1.file=${webappHome}/logs/tomcat_log_”中的“${webappHome}”这个环境变量才被

赋值了,否则无法输出日志文件;

7)设置“jsp-examples\WEB-INF\web.xml”,使上述Log4JInit.java这个servlet自动启动,在web.xml

中添加: 
<servlet> 
<servlet-name>log4jinit</servlet-name> 
<servlet-class>log4j.Log4JInit</servlet-class> 
<init-param> 
<param-name> log4j-config-file </param-name> 
<param-value>/properties/log4j.properties</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 
</servlet>

注意:上面的load-on-startup应设为1,以便在Web容器启动时即装入该Servlet。log4j.properties文件

放在根的properties子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方

便管理。

8)在webapp中使用log4j;进入目录“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-

examples\WEB-INF\classes\dates”,修改JspCalendar.java,加上日志信息: 
//JspCalendar.java 
package dates;

import java.text.DateFormat; 
import java.util.*; 
import org.apache.log4j.Logger; 
import org.apache.log4j.Level; 
import org.apache.log4j.*;

public class JspCalendar { 
Calendar calendar = null; 
static Logger logger = Logger.getLogger(JspCalendar.class);

public JspCalendar() { 
logger.debug("This is debug."); 
logger.info("This is an info."); 
logger.warn("This is a warning."); 
logger.error("This is an error."); 
logger.fatal("This is a fatal error.");

calendar = Calendar.getInstance(); 
Date trialTime = new Date(); 
calendar.setTime(trialTime); 
}

public int getYear() {

return calendar.get(Calendar.YEAR);

}

…… 
//其他内容不变;

}

9)修改系统日期,这样才能手工触发按日生成的日志;

10)重启tomcat;

11)在IE中输入“http://localhost:8086/jsp-examples/dates/date.jsp”;

12)查看日志目录“F:\UserWorkSpace\jiangcm\Tomcat 5.0\webapps\jsp-examples\logs”,耶!生成

以日期命名的html日志文件tomcat_log_2007-03-05.html了!哈哈,太开心了!

注释: 
1.tomcat本身也会自动按日生成日志文件,在目录“F:\UserWorkSpace\jiangcm\Tomcat 5.0\logs”下; 
2.jdk如果无法编译servlet,需要在tomcat\common\lib下把servlet-api.jar拷贝到jdk\jre\lib下; 
问题: 
1.把tomcat_log_2007-03-05.html文件名改为:jsp-examples_log_2007-03-05.html; 
2.xml配置方式有待实践和学习; 
参考资料: 
1.http://www.3doing.net/forums/printpage.asp?BoardID=11&ID=184

2.http://wangluwww.spaces.live.com/blog/

3.Log4j的中文文档 (这是根据最新的log4j(jakarta-log4j-1.2.8)的开发包自带文档的manual翻译的) 
http://dev.csdn.net/develop/article/29/29441.shtm

4.http://www.javaeye.com/post/126014 
怕麻烦的话可以考虑放应用下的某一个目录下,整个Servlet,专门用来设置环境变量和读取log4j的配置

文件 ,初始化Servlet的时候,应用程序的目录是固定的 
可以通过System.setProperty("webappHome",this.getServletContext().getRealPath(""));来设置当前

应用的目录的绝对路径为java内部的环境变量,在log4j的配置文件里面用${webappHome}/WEB-

INF/conf/log/Application.log 来配置该文件的绝对路径就可以了

log4j配置webapp日志系统的更多相关文章

  1. springboot项目配置logback日志系统

    记录springboot项目配置logback日志文件管理: logback依赖jar包 SpringBoot项目配置logback理论上需要添加logback-classic依赖jar包: < ...

  2. java配置slf4j日志系统

    首先要导入的包: import: 每个类中加入下面,其中 RdiFtpDownload.class 是当前的类名.class 然后就可以打日志了: 配置 log4j.properties log4j. ...

  3. log4j配置单独日志文件输出

    log4j.logger.batteryHistory=ERROR,BD log4j.appender.BD=org.apache.log4j.FileAppender log4j.appender. ...

  4. log4j配置独立日志方法

    不使用类,而是使用loggerName来创建日志: #json是用java代码创建logger时用name,而不是jsonlog,注意,不需要在rootLogger中再配置,否则其它无关信息也将输出到 ...

  5. log4j配置输出日志文件

    在测试程序时,有时候运行一次可能需要很久,把日志文件保存下来是很有必要的,本文给出了scala程序输出日志文件的方式,同时使用本人的另一篇博客中介绍的将log4j.properties放到程序jar包 ...

  6. log4j配置生成日志保存在数据库

    利用MDC可以存储参数,MDC原理:相当于一个map将值存储起来,调用时可以根据key将自定义的在值存入对应位置(数据库或文件等).使用: 配置文件:log4j.properties ### dire ...

  7. Django中配置自定义日志系统

  8. 成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件

    关于log4j.properties文件在web项目中放的位置,找过很多,最后实践结果是: 一.web项目 二.放在src的目录里面,然后项目生成后会自动在\WEB-INF\classes文件里有份l ...

  9. 配置Tomcat的日志系统

    成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件 一.引言: 实习单位让用log4j配置webapp的日志系统,要求产生的日志文件是html格 ...

随机推荐

  1. WebAPi性能

    提高WebAPi性能   前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然 ...

  2. Eclipse 项目管理控制软件svn

    ^_^太开心了,之前以为eclipse只有tortoiseSVN而没有类似Visual Studio 2010里面的cvs的版本控制软件,不是我讨厌tortoiseSVN,而是我实在不习惯使用这个软件 ...

  3. MYSQL存储过程实现in传入参数 where in('1','2')

    android 服务器端开发中遇到这么一个问题: 突然发现将字符串传入到存储过程,参数为 '1','2'  ,竟然执行无效 所以看到网上有在存储过程中直接拼凑sql的代码,今天也试了一下,可以执行了, ...

  4. Winform控件学习-TreeView

    转自 http://www.cnblogs.com/zxlovenet/p/3589425.html      作者: 初行 TreeView控件用来显示信息的分级视图,如同Windows里的资源管理 ...

  5. mysql数据库连接池 手动编写

    源码来源于http://www.toutiao.com/a6350448676050174209/,留存以供以后参考学习 先上一张项目托普图 然后分别列出各个文件的源码: MyPool.java(就是 ...

  6. Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) D. Little Artem and Dance

    题目链接: http://codeforces.com/contest/669/problem/D 题意: 给你一个初始序列:1,2,3,...,n. 现在有两种操作: 1.循环左移,循环右移. 2. ...

  7. spring配置事务

    一.配置JDBC事务处理机制 <!-- 配置Hibernate事务处理 --> <bean id="transactionManager" class=" ...

  8. thinpad E43系列WIN8装WIN7系统

    昨晚WIN8系统下装WIN7 折腾了好久,故此总结一下写一篇U盘装WIN7 : 先简述一下思路:BOSS设置启动项------->U盘启动--------> 进入PE删除所有分区----- ...

  9. 01-04-03【Nhibernate (版本3.3.1.4000) 出入江湖】Criteria API关联查询

    Criteria API关联查询 如果说HQL查询还有需要了解点SQL语法知识,并不是完全彻底面向对象查询, 那么Criterial API就是完全面向对象的查询方式. public IList< ...

  10. log4j 总结 精华

    去年这个时候,为做软件工程的大作业就详细学过Log4J的用法了,时隔一年想要在新的项目中好好使用一下的时候,发现几乎全忘了,悲催啊…… 再上网查资料,总是不能找到一篇符合我的口味,拿来就能轻松上手,方 ...