`

log4j.xml配置方法详解

阅读更多
log4j 有两种配置方法,大家熟知的是properties文件但是最近的项目实施中,每次去用户那里装系统,都要苦恼于log文件放在不同位置,要改property文件就要重打jar包,麻烦的紧。而如果采用 xml配置的方法,直接放在WEB-INFO下,要修改路径,很方便。查了些资料,终于把系统的log4j改成在xml中配置啦。
记一下记一下……嘿嘿
附:log4j的API http://logging.apache.org/log4j/docs/api/index.html
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配置详解高清版

    Log4j配置详解 特别清晰,大家可以下载来参考学习,有问题可以反馈

    log4j2-所需jar包+配置详解(详细)

     log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn".  系统选择配置文件的优先级(从先到后)如下:  (1).classpath下的名为log4j2-test.json...

    log4j配置文件说明(完整版)

    log4j配置文件说明,让你轻松配置日志文件

    log4j.properties配置详解

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

    log4j入门到详解

    目录 .....................4. Log4j 使用方法........ 4.1 properties 配置文件详解 4.2 XML 配置文件详解 .... 4.3 properties 比较详细的例子 4.4 在代码中使用 Log4j .. 4.5 注意事项 . 5. Properties 文件实例说明

    log4j常用配置详解

    log4j常用配置,properties 和.xml两种配置示例

    log4j.properties详解与例子

    在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行...Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明properties文件)

    log4j2的配置案例,可直接使用

    配置日志记录器输出的状态为“fatal”,意味着只输出致命错误信息。 定义了一个名为“baseDir”的属性,其值为"./logs",用于配置日志文件的存储路径。 配置了三个日志输出器,分别是控制台输出器“Console”以及三...

    log4j,log4j2,logback 日志插件的使用例子

    2. log4j2 的配置详解,JDBC 配置,CloseableThreadContext 的使用(自定义输出日志文件 例如 logback MDC) 3.logback 的XML配置与使用,MDC的使用,SiftingAppender,DBAppender(c3p0,druid) 详细查看代码:README.md ...

    log4j配置详解.

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

    常用log4j的配置详解

    log4j的配置详细介绍,xml和properties两种格式,同时有一个完整的文档

    log4j从入门到详解

    1.Log4j简介 2.下载 2.1下载Log4j的jar文件 ...4.Log4j使用方法 4.1properties配置文件详解 4.2XML配置文件详解 4.3properties比较详细的例子 4.4在代码中使用Log4j 4.5注意事项 5.Properties文件实例说明

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    Log4J配置详解

    详细讲解Log4j的配置问题,包括XML文件配置方法和利用配置文件配置方法。

    logback的使用和logback.xml详解(小结)

    Logback是由log4j创始人设计的另一个开源日志组件,这篇文章主要介绍了logback的使用和logback.xml详解(小结),非常具有实用价值,需要的朋友可以参考下

    log4Net最详细配置文件解说

    这是关于Log4Net中XML配置文档的解说,最详细的,比Bog中的还要详细,可以看完即会。

    mybatis 一对多多对多案例详解

    2、建立maven 工程 导入相关依赖 ,mybatis,mysql,junit,log4j; 3、建立实体类User和Role; 4、编写UserDao,RoleDao以及映射文件UserDaoMapping.xml ,RoleDaoMapping.xml和主配置文件SqlMapConfig.xml,下面上代码...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    3.5.1 下载并配置dom4j 88 3.5.2 dom4j api介绍 88 3.5.3 第一个实例 92 3.5.4 第二个实例 94 3.6 解析名称空间 96 3.6.1 dom和名称空间 96 3.6.2 sax和名称空间 97 3.6.3 jdom和名称空间 98 3.6.4 dom4j和...

Global site tag (gtag.js) - Google Analytics