转自:
引用
http://smilecertian.blog.sohu.com/52335422.html
og4j 有两种配置方法,大家熟知的是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>
如果与spring结合一起的话,可以在web.xml中添加
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
就可以使用log4j.xml的配置了,就不用写那个ActionServlet了
分享到:
相关推荐
Log4j配置详解 特别清晰,大家可以下载来参考学习,有问题可以反馈
log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn". 系统选择配置文件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json...
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
目录 ...................... 1. Log4j 简介 ........... 2. 下载与使用.............4.2 XML 配置文件详解 .... 4.3 properties 比较详细的例子 4.4 在代码中使用 Log4j .. 4.5 注意事项 . 5. Properties 文件实例说明
log4j配置文件说明,让你轻松配置日志文件
在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行...Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。(这里只说明properties文件)
log4j常用配置,properties 和.xml两种配置示例
配置日志记录器输出的状态为“fatal”,意味着只输出致命错误信息。 定义了一个名为“baseDir”的属性,其值为"./logs",用于配置日志文件的存储路径。 配置了三个日志输出器,分别是控制台输出器“Console”以及三...
2. log4j2 的配置详解,JDBC 配置,CloseableThreadContext 的使用(自定义输出日志文件 例如 logback MDC) 3.logback 的XML配置与使用,MDC的使用,SiftingAppender,DBAppender(c3p0,druid) 详细查看代码:README.md ...
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
log4j的配置详细介绍,xml和properties两种格式,同时有一个完整的文档
大部分内容摘自网络,整理:雪飘寒 目录 Log4j从入门到详解 目录 1. Log4j简介 ...4.2 XML配置文件详解 4.3 properties比较详细的例子 4.4 在代码中使用Log4j 4.5 注意事项 5. Properties文件实例说明
详细讲解Log4j的配置问题,包括XML文件配置方法和利用配置文件配置方法。
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和...
关于logback-test.xml配置详解,包括简单项目demo解压运行
2、建立maven 工程 导入相关依赖 ,mybatis,mysql,junit,log4j; 3、建立实体类User和Role; 4、编写UserDao,RoleDao以及映射文件UserDaoMapping.xml ,RoleDaoMapping.xml和主配置文件SqlMapConfig.xml,下面上代码...
技术人员也过个年吧,java_吐血奉献_超值大礼包(最新版本)_含struts,hibernate,spring,log4j,web.xml配置详解,java分页大全,cvs教程,tomcat,swing教程,jboss,及各种框架的配置文件范例
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和...
搭建整合环境、Spring整合SpringMVC(配置web.xml文件、配置springmvc.xml文件)、Spring整合Mybatis(配置applicationContext.xml文件、配置mybatis-config.xml文件、jdbc.properties、log4j.properties)附有项目...