`

log4j.xml配置方法介绍(转)

阅读更多

log4j.xml配置方法介绍
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.xml(MyBatis框架)

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

    log4j与web.xml的配置

    4. **通过web.xml配置Log4j** - 在web.xml中,我们可以使用`&lt;context-param&gt;`标签来指定Log4j配置文件的位置,例如: ```xml &lt;param-name&gt;log4jConfigLocation &lt;param-value&gt;/WEB-INF/classes/log4j....

    log4j.jar及log4j.xml

    以上内容详细介绍了Log4j.jar的核心组件和log4j.xml配置文件的作用,它们共同构成了Log4j日志框架的基础。通过合理的配置和使用,Log4j能够为开发者提供强大且灵活的日志管理能力,帮助他们更好地监控和维护Java应用...

    Log4j2学习log4j2.xml配置模板

    下面是一个较为完整的 Log4j2.xml 配置模板: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!--日志级别以及优先级排序: OFF &gt; FATAL &gt; ERROR &gt; WARN &gt; INFO &gt; DEBUG &gt; TRACE &gt; ALL --&gt; &lt;!--Configuration 后面...

    log4j.xml配置文件

    log4j.xml配置文件

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

    1. **XML配置** (`log4j.xml`) - **基本结构**:`log4j.xml`文件遵循XML语法,根元素是`&lt;configuration&gt;`,包含`&lt;appenders&gt;`, `&lt;loggers&gt;`, `&lt;root&gt;`等子元素。 - **Appenders**:这是定义日志输出目标的地方,...

    log4j2.xml配置

    spring5取消Log4jConfigListener,运用Log4jServletContextListener代替Log4jConfigListener(log4j2.xml的配置)

    Log4J.xml的模板

    在Log4J.xml配置文件中,主要包含以下几个核心元素和知识点: 1. **Configuration**:这是配置文件的根元素,所有其他设置都包含在这个元素内。 2. **Appenders**:这部分定义了日志信息的输出目的地,如控制台、...

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...

    log4j.xml

    《深入解析log4j.xml配置》 在Java开发中,日志记录是不可或缺的一部分,而Log4j作为一款广泛使用的日志框架,它的配置文件log4j.xml扮演着至关重要的角色。本文将深入探讨log4j.xml配置文件的结构、用途及其中的...

    spring-log4j.xml

    log4j.xml配置范例log4j.xml配置范例log4j.xml配置范例log4j.xml配置范例log4j.xml配置范例

    log4j.xml配置

    log4j的配置文件,方便大家使用.log4j的基本

    log4j.xml 配置文件

    log4j 的配置文件示例 log4j是很好用的日志,建议项目里面都用上.

    SSM整合中的Log4j日志的配置详情

    本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助读者更好地理解 Log4j 的使用。 一、Log4j 的基本概念 Log4j 是 Apache 软件基金会提供的一个日志记录工具,能够记录和输出项目中的日志信息。Log4j 的核心组件...

    log4j2.xml记录日志到到数据库

    总结,Log4j2通过XML配置文件实现了与MySQL数据库的集成,允许开发者将日志信息存储在数据库中,便于长期保存和分析。理解Log4j2的配置和使用是每个Java开发者必备的技能,这对于日后的故障排查和系统维护至关重要。...

    日志配置文件log4j.xml以及MySql数据库驱动文件

    本篇文章将深入探讨这两个关键组件:日志配置文件`log4j.xml`和MySQL数据库驱动文件`mysql-connector-java-5.1.39-bin.jar`。 首先,我们来了解`log4j.xml`。Log4j是Apache组织提供的一款开源的日志记录框架,广泛...

    log4j.xml配置实现.pdf

    `contextInitialized`方法会在Web应用初始化时被调用,它会查找`web.xml`中设置的`log4jConfigLocation`参数来确定`log4j.xml`的位置。如果文件路径以`.xml`结尾,那么使用`DOMConfigurator.configure()`来解析XML...

    log4j.xml template

    一个比较通用的log4j.xml配置模板

    log4j.xml文件的配置文.pdf

    ### 关于Log4j.xml配置文件的理解与应用 #### 一、引言 在Java开发领域,日志记录是至关重要的一个环节。它不仅能够帮助开发者更好地了解程序运行时的状态,还能在出现故障时快速定位问题所在。Log4j作为一款优秀...

Global site tag (gtag.js) - Google Analytics