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内容:
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);
-
- 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
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.iteye.com/post/126014
怕麻烦的话可以考虑放应用下的某一个目录下,整个Servlet,专门用来设置环境变量和读取log4j的配置
文件 ,初始化Servlet的时候,应用程序的目录是固定的
可以通过System.setProperty("webappHome",this.getServletContext().getRealPath(""));来设置当前
应用的目录的绝对路径为java内部的环境变量,在log4j的配置文件里面用${webappHome}/WEB-
INF/conf/log/Application.log 来配置该文件的绝对路径就可以了
分享到:
相关推荐
tomcat下的log4j日志配置,给tomcat配置log4j有好几种方法,我知道的有: 一、tomcat级别的统一日志管理 二、每个webapp分别配置log4j
IntelliJ IDEA 12 配置webapp项目,IntelliJ IDEA 12 配置webapp项目,
问题:部署的webapp,日志内容显示乱码现象:日志信息在本地测试显示正常,部署到azure后显示乱码问题原因:因为Azure是一个英文环境,所以在使用log4
移至
包含(cas-server-webapp-4.0.0.war、c3p0-0.9.1.2.jar、cas-client-core-3.3.3.jar、cas-server-support-jdbc-4.0.0.jar、cas-server-webapp-support-4.0.0.jar、commons-logging-1.1.3.jar、log4j-1.2.17.jar、...
NULL 博文链接:https://panyongzheng.iteye.com/blog/1757288
用于webView和webApp的log工具,模拟浏览器的控制台的log功能,可用于webView或者webApp;
Webapp点餐系统需求规格说明书.doc
C# Webapp C# WebappC# WebappC# WebappC# WebappC# WebappC# Webapp
Maven配置struts2+hibernate4+spring3的webapp。使用myeclipse作为编辑器
1.了解Web工程概念及与传统软件工程的区别 2.理解WebApp的概念、特点和开发过程 3.掌握WebApp的分析、设计和测试方法 4.掌握WebApp综合开发方法及课程设计过程
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
J4U WebApp设置安装npm(节点程序包管理器) 克隆git repo: git clone https://github.com/petlab-unil/J4U-WebApp在克隆的文件夹中创建一个.env文件: cd J4U-WebApp/ vim .env安装所有必需的软件包(在packages....
webapp 页面交互与布局webapp 页面交互与布局webapp 页面交互与布局webapp 页面交互与布局
基于webapp的IBS食物列表查询系统源码+项目说明(含服务端源码).zip基于webapp的IBS食物列表查询系统源码+项目说明(含服务端源码).zip基于webapp的IBS食物列表查询系统源码+项目说明(含服务端源码).zip基于webapp的...
webapp设计尺寸规范,好的规范,铸就明天的你
idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发webapp 热部署idea开发...