`
flysky
  • 浏览: 65355 次
社区版块
存档分类
最新评论

log4j配置webapp日志系统

    博客分类:
  • java
阅读更多
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.iteye.com/post/126014
怕麻烦的话可以考虑放应用下的某一个目录下,整个Servlet,专门用来设置环境变量和读取log4j的配置

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

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

INF/conf/log/Application.log 来配置该文件的绝对路径就可以了
分享到:
评论
1 楼 sprite 2007-02-08  
谢谢 楼主 收藏一下 以备查看

相关推荐

    tomcat下的log4j日志配置

    在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...

    Log4j 相对路径配置

    2. `&lt;param-name&gt;log4jConfigLocation&lt;/param-name&gt;` 指定了Log4j配置文件的路径,这里是`WEB-INF/config/log4j.properties`。这个配置告诉Web应用在哪里寻找Log4j的配置信息。 3. `&lt;param-name&gt;log4...

    java log4j统一打印在user.dir目录下(windows、linux通用、不用考虑不同操作系统分隔符不一致的情况)

    Java日志管理是开发过程中必不可少的部分,而Log4j作为Java...在`webapp`项目中,你可以将上述配置文件添加至类路径,并在代码中引入Log4j的相关API,如`Logger.getLogger(Class)`,即可开始使用这个统一的日志系统。

    tomcat6 配置log4j步骤

    ### Tomcat 6 配置 Log4j 步骤详解 ...通过上述步骤,你已经成功地在 Tomcat 6 中配置了 Log4j 日志记录系统。这不仅能够提高系统的可维护性,还能帮助快速定位问题,提升开发效率。希望本文对你有所帮助!

    SSH框架中配置log4j的方法

    `log4j.properties`文件是整个日志配置的核心,包含日志级别设置、日志输出目的地等关键配置项。 ```properties log4j.rootLogger=INFO, logfile log4j.appender.logfile=org.apache.log4j....

    maven+springmvc+mybatis+log4j框架搭建

    配置Log4j,你需要创建一个`log4j.properties`或`log4j.xml`文件,定义日志级别(如DEBUG、INFO、WARN等)、输出目的地和布局格式。这样,你就可以在开发和调试过程中方便地追踪错误和调试信息。 在实际项目中,这...

    log4j的配置信息

    ### Log4j配置详解 #### 一、Log4j简介 Log4j是Apache的一个开源项目,通过使用Log4j,开发者能够控制日志信息的记录级别(例如:DEBUG、INFO、WARN、ERROR等),输出的目标(控制台、文件、GUI组件等)以及输出...

    log4j.properties配置分级别单独打印

    首先,我们来看一段关键的Log4j配置语句: ```properties log4j.appender.debug.Threshold=INFO ``` 这段配置指定了名为`debug`的Appender仅输出INFO级别及以上的日志消息。然而,这并不能满足按照不同级别将日志...

    spring 配置log4j.docx

    5. **log4j配置文件**:在`log4j.properties`文件中,我们可以定义日志级别(如INFO、DEBUG等)、日志输出的目标(如控制台、文件等)以及输出格式。例如,`log4j.rootCategory=INFO, file`设置了日志级别为INFO,并...

    详解Log4j 日志文件存放位置设置

    通过合理配置Log4j的日志文件存放位置,可以有效地管理日志信息,便于问题定位和系统监控。 需要注意的是,在配置日志文件存放位置的时候,需要考虑到安全性和日志文件的管理策略,避免日志文件过大导致磁盘空间...

    log4j应用实例

    ##### 2.1 Web项目中的Log4j配置 - **基本配置**:首先需要在项目的`WEB-INF`目录下创建`log4j.properties`文件,并进行基本配置。例如,指定日志文件的路径、日志级别等。 ```properties # 示例配置 log4j....

    深入浅析java web log4j 配置及在web项目中配置Log4j的技巧

    `log4jRefreshInterval` 参数定义了Log4j配置文件的刷新间隔(以毫秒计),这样可以实现动态更新日志配置,无需重启服务器。 接下来,我们需要创建`log4j.properties`配置文件,定义日志输出的级别、格式和目的地。...

    我的第一个log4j测试程序

    3. **初始化Log4j**: 在Web应用启动时加载Log4j配置,并初始化日志系统。 4. **使用Logger**: 在代码中通过`Logger.getLogger()`方法获取Logger实例,然后调用其`debug()`, `info()`, `warn()`, `error()`等方法...

    maven+Springmvc+spring+mybatis+log4j的Demo

    这是一个基于Maven构建的Java Web项目,整合了Spring MVC、Spring、MyBatis以及Log4j四个关键组件,用于实现企业级的三层架构。这个Demo是个人学习与实践的成果,可以帮助初学者或开发者理解如何将这些流行的技术...

    Maven_SpringMVC_Ibatis_Log4j

    6. 配置Log4j.properties或Log4j.xml,设定日志输出级别和格式。 7. 使用Maven命令(如`mvn clean install`)编译、测试、打包项目。 8. 将打包好的WAR文件部署到服务器,如Tomcat,即可运行Web应用。 总的来说,...

    通过gradle搭建SSM框架+slf4j 以Gradle实现

    5. **slf4j配置** - **日志配置**:创建`logback.xml`或`log4j.properties`(取决于选用的日志实现),配置日志级别、输出格式、文件滚动策略等。 6. **启动与测试** - **Tomcat插件**:在`build.gradle`中引入...

    cas-server-webapp-3.5.2.zip

    配置日志框架(如Log4j)以获取详细的调试信息。 - 可以通过集成监控工具(如JMX或Prometheus)来监控服务器性能和状态。 总的来说,"cas-server-webapp-3.5.2.zip"提供的CAS服务器是一个强大的身份验证解决方案,...

    订餐系统v1.0

    - 加入日志配置文件`log4j.properties`,并配置日志级别及输出方式。 - 加入数据库配置文件`db.properties`,配置数据库连接信息。 ```xml &lt;!-- 示例配置文件片段 --&gt; xmlns:xsi=...

    Mini-Project:使用jsp、servlet、maven.log4j等核心技术开发简单项目

    4. log4j.properties或log4j.xml:Log4j的日志配置文件。 通过实践这个"Mini-Project",你不仅可以掌握JSP、Servlet、Maven和Log4j的基础用法,还能了解到如何组织和管理一个Java Web项目。这将为你的Java开发职业...

    SpringBoot入门配置

    在`src/main/resources`目录下创建`log4j2.xml`文件,并配置相应的日志级别和输出格式。 #### 六、常用注解说明 SpringBoot提供了一系列的注解来简化开发过程: - **`@EnableAutoConfiguration`:** 告诉...

Global site tag (gtag.js) - Google Analytics