`

log4j.xmlde两种配置方式

阅读更多
log4j 有两种配置方法,大家熟知的是properties文件但是最近的项目实施中,每次去用户那里装系统,都要苦恼于log文件放在不同位置,要改property文件就要重打jar包,麻烦的紧。而如果采用 xml配置的方法,直接放在WEB-INFO下,要修改路径,很方便。查了些资料,终于把系统的log4j改成在xml中配置啦。
记一下记一下……嘿嘿
log4i.xml 文件

    <?xml version="1.0" encoding="GB2312" ?>  
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
     <appender name="FILE"  
      class="org.apache.log4j.RollingFileAppender">  
      <!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->  
      <param name="File" value="D:/zhaotj/all.output.log" /><!-- 设置File参数:日志输出文件名 -->  
      <param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
      <param name="MaxBackupIndex" value="10" />  
      <layout class="org.apache.log4j.PatternLayout">  
       <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /><!-- 设置输出文件项目和格式 -->  
      </layout>  
     </appender>  
      
     <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">  
                    <!-- 设置监视器输出方式 -->  
      <layout class="org.apache.log4j.PatternLayout">  
       <param name="ConversionPattern"  
        value="%-4r [%t] %-5p %c %x - %m%n" />  
      </layout>  
                    <!--滤镜设置输出的级别-->  
      <filter class="org.apache.log4j.varia.LevelRangeFilter">  
       <param name="levelMin" value="info" />  
       <param name="levelMax" value="info" />  
       <param name="AcceptOnMatch" value="true" />  
      </filter>  
     </appender>  
      
     <root><!-- 设置接收所有输出的通道 -->  
      <priority value="info" />  
      <appender-ref ref="FILE" /><!-- 与前面的通道id相对应 -->  
      <appender-ref ref="STDOUT" />  
     </root>  
      
    </log4j:configuration>  
      

建好xml文件后 要写一个servlet类继承actionservlet,当工程初始化时自动加载xml配置文件

    package com.asiainfo;   
    import javax.servlet.ServletException;   
    import org.apache.commons.logging.Log;   
    import org.apache.commons.logging.LogFactory;   
    import org.apache.log4j.xml.DOMConfigurator;   
    import org.apache.struts.action.ActionServlet;   
      
    public class ExtendedActionServlet extends ActionServlet {   
            private Log log = LogFactory.getLog(this.getClass().getName());   
      
            public ExtendedActionServlet() {}   
      
            public void init() throws ServletException {   
                log.info(   
                        "Initializing, My MyActionServlet init this System's Const Variable");   
                String prefix = this.getServletConfig().getServletContext().getRealPath(   
                        "/");//读取项目的路径   
                String file = this.getServletConfig().getInitParameter("log4j");   
                           //读取log4j相对路径   
                String filePath = prefix + file;    
                DOMConfigurator.configure(filePath);//加载.xml文件          
                log.info("Initializing, end My Init");   
                super.init();//应用了struts,此方法不能省,ActionServlet覆盖了的此方法中有很多重要操作   
            }   
    }   
      

我们可以看到 在此类中 用了相对路径来加载xml的方法,首先通过prefix 读取了项目的路径 然后再通过读取web.xml中的log4j变量,获得log4j.xml的相对路径 两者结合 就是他的绝对路径拉
最后在web.xml中配置action信息 就可以实现加载啦
web.xml 

        <servlet>  
     <servlet-name>action</servlet-name>  
     <servlet-class>  
      com.asiainfo.ExtendedActionServlet   
     </servlet-class>  
     <init-param>  
      <param-name>config</param-name>  
      <param-value>/WEB-INF/struts-config.xml</param-value>  
     </init-param>  
      
     <!-- tsExtend  -->  
     <init-param>  
      <param-name>config/tsextend</param-name><!--设备检测子模块-->  
      <param-value>  
       /WEB-INF/tsextend/struts-config.xml   
      </param-value>  
     </init-param>  
                   <init-param>  
      <param-name>log4j</param-name><!--log4j.xml的路径-->  
      <param-value>  
       /WEB-INF/log4j.xml   
      </param-value>  
     </init-param>  
     <init-param>  
      <param-name>info</param-name>  
      <param-value>3</param-value>  
     </init-param>  
     <init-param>  
      <param-name>detail</param-name>  
      <param-value>3</param-value>  
     </init-param>  
     <load-on-startup>0</load-on-startup><!--设置当工程初始时便执行-->  
    </servlet>  
      
    <servlet-mapping>  
     <servlet-name>action</servlet-name>  
     <url-pattern>*.do</url-pattern>  
    </servlet-mapping>

================================================================================
log4j.properties
# This is the configuring for logging displayed in the Application Server
log4j.rootCategory=INFO, stdout,logfile

#stdout configure
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

#logfile configure
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=/role.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= %d %p [%c] - <%m>%n

# Control logging for other open source packages
# Changing the log level to DEBUG when debug
log4j.logger.org.springframework=WARN
# Changing the log level to DEBUG will display SQL Hibernate generated
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.SQL=ERROR
log4j.logger.org.hibernate.cache=ERROR
log4j.logger.net.sf.ehcache=ERROR

0
0
分享到:
评论

相关推荐

    log4j.jar包,和log4j.properties配置文件下载

    在"Log4j.jar包,和log4j.properties属性文件打包下载"中,我们有两个关键组成部分: 1. **Log4j.jar**:这是Log4j的主要库文件,包含了所有必需的类和方法,使得程序员能够方便地在代码中插入日志语句。它提供了...

    log4j.properties配置文件

    ### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...

    log4j.properties(完整版) log4j.properties(精简版)

    本文将围绕Log4j的核心配置文件`log4j.properties`进行详细讲解,分为完整版和精简版两个部分。 **1. Log4j基础概念** Log4j由三个主要组件构成:Logger(日志器)、Appender(输出器)和Layout(布局)。Logger...

    log4j.properties配置详解

    Log4j支持多种配置方式,其中.properties文件配置是最常用的一种。通过.properties文件,我们可以灵活地设置日志记录器的级别、输出目的地(Appender)以及日志信息的布局(Layout)。 #### 二、Log4j配置文件格式详解 ...

    log4j与log4j.properties的配置.doc

    Log4j 配置详解 Log4j 是一个流行的 Java 日志记录工具,提供了灵活的日志记录机制,能够满足不同的日志记录需求。在本文中,我们将详细介绍 Log4j 的配置,包括配置步骤、log4j.properties 配置文件、日志输出...

    log4j使用jar包和log4j.properties配置文件

    `log4j.properties`是Log4j的配置文件,通过它我们可以定制日志的级别、输出方式、格式等。一个基本的`log4j.properties`配置示例如下: ```properties # 设置全局日志级别 log4j.rootLogger=DEBUG, stdout, R # ...

    log4j.properties 的使用详解(含log4j.properties)

    总结,log4j.properties文件是log4j框架的核心配置,通过它,我们可以定制日志记录的方式、级别和格式,满足不同项目的需求。理解并熟练掌握log4j.properties的配置,对于提升开发效率和问题排查有着极大的帮助。

    log4j的详细配置,log4j.xml和log4j.properties,日志输出到文件,邮件,数据库,控制台等

    Log4j提供了多种配置方式,其中最常用的有两种:XML格式的`log4j.xml`和properties格式的`log4j.properties`。接下来,我们将深入探讨如何通过这两种配置文件来设置日志输出的目标、级别以及格式。 1. **XML配置** ...

    log4j.jar及log4j.xml

    要在项目中使用Log4j,首先需要将`log4j.jar`添加到项目的类路径中,然后创建或引用`log4j.xml`配置文件。在代码中,通过以下方式创建和使用Logger: ```java import org.apache.log4j.Logger; public class ...

    Log4j.properties配置详解

    Log4j 是一个广泛使用的...正确配置Log4j.properties文件能够帮助开发者更好地管理和监控应用程序的运行状态,通过调整日志级别和输出方式,可以在开发、测试和生产环境中获得合适的日志信息,从而提升问题排查效率。

    log4j.properties

    log4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j.propertieslog4j....

    Log4j+使用方法+配置文件log4j.properties

    本文将详细介绍Log4j的使用方法以及配置文件`log4j.properties`的设置。 1. **Logger** Logger是日志信息的源头,它是Log4j中最基本的类。通过创建Logger实例,你可以为不同的类或模块分配不同的日志级别,如DEBUG...

    log4j.properties配置

    log4j.properties配置

    log4j.xml(MyBatis框架)

    这里是log4j.xml详细的配置,在使用MyBatis框架时必要的一种配置。

    log4j配置实例(含配log4j.properties及jar包)

    本教程将深入探讨如何配置和使用Log4j,包括`log4j.properties`配置文件的编写以及相应的Java代码示例。 1. **Log4j的核心组件** - **Logger**: 日志记录器,用于生成日志事件。 - **Appender**: 输出目标,负责...

    log4j.zip 项目日志

    解压“log4j.zip”后,我们通常会找到一个名为“log4j.properties”或“log4j.xml”的配置文件,这是Log4j的核心配置文件。例如,以下是一个简单的配置示例: ```properties # log4j.properties log4j.rootLogger=...

    Log - Log4j - log4j.properties配置文件

    本文将深入探讨Log4j的配置文件`log4j.properties`,以及如何在Hibernate框架中集成Log4j。 `log4j.properties`配置文件是Log4j的核心,它定义了日志输出的行为,包括日志级别、输出目的地、格式等。以下是一些关键...

    log4j.properties的简单运用

    `log4j.properties`是Log4j框架的核心配置文件,通过它可以灵活地定制日志输出的行为。理解并熟练运用这个配置文件,能帮助开发者更有效地管理和分析应用程序的运行状态,从而提高开发效率和问题排查能力。在实际...

    Log4j日志包

    log4j.rootLogger=debug,CONSOLE,testfile,A1,MAIL ################### # Console Appender ################### log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Target=...

Global site tag (gtag.js) - Google Analytics