`
qmug
  • 浏览: 201499 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

log4j自己的一个实例

    博客分类:
  • J2EE
阅读更多
程序启动的时候首先启动web.xml中的servlet中log4j-init文件,这个文件的位置是com.et.bean.servlet.Log4jInit  <init-param>是里面含有的参数,这个参数是WEB-INF/log.xml。

1.在web.xml文件中加入,

    <servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.et.bean.servlet.Log4jInit</servlet-class>
    <init-param>
      <param-name>log4j-init-file</param-name>
      <param-value>WEB-INF/log.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

与之对应的
  <servlet-mapping>
    <servlet-name>ServletTest</servlet-name>
    <url-pattern>/servlet</url-pattern>
  </servlet-mapping>
这段如果不写的话也可以正常执行log4j的功能。

2.把log4j.xml文件copy到WEB-INF 文件夹内


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


<!-- 配置通道名称:console和输出方式:org.apache.log4j.RollingFileAppender
           其中输出方式appender有5种,分别为
           org.apache.log4j.ConsoleAppender (控制台) 
           org.apache.log4j.FileAppender (文档)
           org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文档)
           org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)-->
          
          
<!--Threshold是个全局的过滤器,他将把低于所配置的level的信息过滤不显示出来-->
      <!--level:是日记记录的优先级,优先级由高到低分为
          OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
          Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。--> 
         
         
<!-- 输出端的layout是哪种类型,可以是
    org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) -->        
         

   
<!-- 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
        %m 输出代码中指定的消息
        %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
        %r 输出自应用启动到输出该log信息耗费的毫秒数
        %c 输出所属的类目,通常就是所在类的全名
        %t 输出产生该日志事件的线程名
        %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
        %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
        %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
        [QC]是log信息的开头,可以为任意字符,一般为项目简称。 -->


<!--输出方式:输出到控制台-->    
<appender name="console" class="org.apache.log4j.ConsoleAppender">
   <param name="Target" value="System.out"/>
   <param name="Threshold" value="INFO"/>
  <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n" />
  </layout>
</appender>

<!--输出方式:输出到文件,每日-->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<param name="File" value="E:\\qc.log"/>   <!-- 文件路径 -->
  <param name="Append" value="false"/>          <!--Append是配置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  <param name="DatePattern" value="'.'yyyy-MM-dd"/>  <!-- 日期形式输出文件 -->
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
    </layout>    
</appender>
 

<!--输出方式:输出到文件-->
<appender name="comm"  class="org.apache.log4j.RollingFileAppender">
  <param  name="File"   value="E:\\log4j.log" />
  <param  name="Append"   value="true" />
  <param  name="MaxFileSize"   value="5000KB" />  <!-- 文件最大的容量 -->
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"  value="%d [%t] %l%n[%p] %m%n"/>
  </layout>
</appender>

<!-- 输出方式:输出到文件 -->
<appender name="local"  class="org.apache.log4j.RollingFileAppender">
  <param  name="File"   value="E:\\qc.log" />
  <param  name="Append"   value="true" />
  <param  name="MaxFileSize"   value="5000KB" />
  <layout class="org.apache.log4j.PatternLayout">  <!-- 文件的布局 -->
   <param name="ConversionPattern" value="%d [%t] %l%n[%p] %m%n" />  <!-- 文件的输出格式 -->
  </layout>
  <filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 过滤等级-->
       <param name="levelMin" value="warn" />
       <param name="levelMax" value="warn" />   
       <param name="AcceptOnMatch" value="true" />
  </filter>
</appender>


<!-- category是指定我们的项目下的具体包下的所有类的等级(priority)为DEBUG,info,warn,error等 ,输出方式(appender)是.. -->

<category name="com.et.dao.impl">
  <priority value="DEBUG" />
  <appender-ref ref="console" />
  <appender-ref ref="comm" />
</category>

</log4j:configuration>
     




3.建立个 servlet 包,把Log4jInit 文件放入到文件夹下面

package com.et.bean.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.PropertyConfigurator;

public class Log4jInit extends HttpServlet {
  public void init() {
    String prefix =  getServletContext().getRealPath("/");
    String file = getInitParameter("log4j-init-file");
    // if the log4j-init-file is not set, then no point in trying
    if(file != null) {
      PropertyConfigurator.configure(prefix+file);
      System.out.println("Init Log4j success!");
    }
  }
  public void doGet(HttpServletRequest req, HttpServletResponse res) {
  }
}

4.在需要的生成日志的地方加入static Logger logger = Logger.getLogger(TousuDAO.class);


public class TousuDAO extends BaseDAO {
static Logger logger = Logger.getLogger(TousuDAO.class);

其中Logger.getLogger(TousuDAO.class); 与public class TousuDAO 的DAO要一致,传说中的反射机制。

在执行这个工程的时候就会在相应的目录下生成日志文件,内容类似

2008-08-22 09:34:54,234 [http-8080-2] com.et.dao.impl.WorkInfoDAO.getWorkInfoList(WorkInfoDAO.java:32)
[INFO] 1afafewefwe,
2008-08-22 09:34:54,250 [http-8080-2] com.et.dao.impl.WorkInfoDAO.getWorkInfoList(WorkInfoDAO.java:34)
[DEBUG] abcder
2008-08-22 09:34:58,296 [http-8080-2]
分享到:
评论

相关推荐

    log4j多个简单实例

    Log4j是Apache组织开发的一个强大的、灵活的日志记录框架,它允许我们控制日志信息的输出级别、格式以及输出位置。本篇文章将深入探讨Log4j的多个简单实例,帮助你理解和掌握其基本用法。 首先,Log4j由三个主要...

    log4j 实例

    在压缩包文件“mytest”中,可能包含了一个简单的Log4j应用实例,你可以通过查看源代码来实践上述知识点。学习和熟练运用Log4j,不仅可以提升代码的可读性和可维护性,还能在问题排查时提供关键信息,是每个Java...

    spring log4j 实例

    本实例结合Spring和Log4j,将为你提供一个实用的日志解决方案。 首先,我们要理解Spring是如何集成Log4j的。Spring框架通过Apache Commons Logging接口来提供日志服务,而Log4j可以作为这个接口的实现。因此,我们...

    log4j帮助文档及实例

    Log4j的配置通常通过一个名为`log4j.properties`或`log4j.xml`的配置文件进行。这个文件定义了Logger的级别(如DEBUG、INFO、WARN、ERROR、FATAL),指定哪些类或者包应该记录日志,以及定义Appender的输出位置和...

    Log4j使用实例

    Log4j 是一个开源的日志记录框架,由 Apache 软件基金会提供。它允许开发者根据需求配置日志等级,并灵活选择日志信息的输出方式。Log4j 的核心组件包括 Logger、Appender 和 Layout。 #### 二、Log4j 基本使用流程...

    log4j.properties配置实例

    这个 log4j.properties 配置实例提供了一个完整的 Log4j 配置解决方案,涵盖了邮件日志、数据库日志和日志记录的配置。这将有助于开发者快速地实现 Log4j 的配置和日志记录。 知识点: 1. Log4j 是一个流行的 Java...

    Log4j实例

    Log4j的配置通常通过一个名为log4j.properties或log4j.xml的配置文件完成。以下是一个简单的配置示例: ```properties # log4j.properties log4j.rootLogger=DEBUG, stdout, file log4j.appender.stdout=org.apache...

    Log4j+MongoDB 完整实例

    在IT行业中,日志管理和数据分析是至关重要的环节,特别是在大型分布式系统中。...这个"Log4j+MongoDB完整实例"就是一个很好的起点,帮助开发者了解如何将这两者结合,以实现日志数据的全生命周期管理。

    log4j配置方法和实例

    **日志框架Log4j详解及配置实例** Log4j是Apache组织开发的一款强大的日志处理框架,广泛应用于Java应用程序中,提供灵活的日志记录功能。本文将详细介绍Log4j的配置方法,并通过实例帮助初学者理解其工作原理。 #...

    weblogic中使用log4j生成日志文件实例

    本文将通过一个具体的实例,详细解释如何在WebLogic环境中集成并使用Log4j生成日志文件。 首先,我们需要理解Log4j的基本组件。Log4j主要由三个部分组成:配置器(Configuration)、日志器(Logger)和布局器...

    log4j日志写入数据库实例

    首先,Log4j是一个开源的日志记录工具,它允许程序员根据不同的级别(如DEBUG、INFO、WARN、ERROR和FATAL)记录应用程序的运行情况。其核心组件包括Appender(日志输出端点)、Layout(日志格式化)和Logger(日志...

    log4j实例,log4j-1.2.9.jar

    在标题“log4j实例,log4j-1.2.9.jar”中,我们看到的是Log4j的一个具体版本——1.2.9。这个版本虽然相对较旧,但它仍然是许多现有项目的基础,因为它稳定且功能齐全。 **1. Log4j的核心组件** Log4j由三个主要...

    log4j(实例代码+文档)

    "Log4j(实例代码+文档)" 指的是一个资源包,其中包含了关于Log4j的实例代码和相关文档。Log4j是Java编程语言中的一个开源日志记录框架,由Apache软件基金会开发。它允许程序员以灵活的方式控制程序的日志输出,提供...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    本文将详细探讨如何通过SLF4J接口来使用Log4j进行日志记录,并展示一个测试代码实例。 **SLF4J简介** SLF4J是一个抽象层,为各种日志框架提供了统一的API,如Logback、Log4j等。它的主要优点在于可以让你在不修改...

    springmvc5+hibernate5+junit4+log4j2整合实例

    在本整合实例中,我们将探讨如何将Spring MVC 5、Hibernate 5、JUnit 4 和 Log4j2 集成在一起,以构建一个高效、可测试和日志记录完善的Java Web应用程序。以下是对这些技术及其整合过程的详细说明: **Spring MVC ...

    Log4j配置实例

    Log4j的配置主要通过一个名为`log4j.properties`或`log4j.xml`的配置文件进行。这个文件定义了日志的行为,包括日志级别、输出目的地、格式等。下面是一个简单的`log4j.properties`配置示例: ```properties # 设置...

    log4j使用实例.zip

    以下是一个简单的`log4j.properties`配置示例: ``` log4j.rootLogger=DEBUG, Console, File log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j....

    Log4j学习笔记和一套完整定义实例

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    总的来说,log4j-api-2.17.1.jar和log4j-core-2.17.1.jar是Log4j2的核心组件,它们共同构建了一个强大且可扩展的日志框架。开发者应熟悉这两个库的职责和交互方式,以便充分利用Log4j2的功能,同时确保系统的安全性...

    log4j示例项目

    在Log4j项目中,通常会有一个`log4j.properties`或`log4j.xml`配置文件,用于定义日志行为。例如: ```properties # log4j.properties 示例 log4j.rootLogger=DEBUG, stdout, FILE log4j.appender.stdout=org....

Global site tag (gtag.js) - Google Analytics