- 浏览: 175827 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chenyi1125:
StateStats 是自己定义的类吧,有哪些属性,如何与我 ...
mongodb sum 操作 -
yongquan812:
...
最全的 Twitter Bootstrap 开发资源清单 -
mccxj:
不是已经提供个params的属性来添加路径的参数了么?我对分页 ...
grails 查询结果分页 简单实现 -
sphinxdwood:
请问第22行有什么用?params.ft_inlist = K ...
grails 查询结果分页 简单实现 -
walsh:
classpath的配置不正确吧
java基础
log4j.xml配置实现配置实现配置实现配置实现
先写一个Servlet的listener,用来监听服务启动,并自动解析log4j.xml文件 代码如下:
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.log4j.LogManager; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.xml.DOMConfigurator; public class Log4jConfigListener implements ServletContextListener{ public static final String CONFIG_LOCATION_PARAM = "log4jConfigLocation"; public static final String XML_FILE_EXTENSION = ".xml"; public void contextDestroyed(ServletContextEvent event) { // TODO Auto-generated method stub LogManager.shutdown(); } public void contextInitialized(ServletContextEvent event) { // TODO Auto-generated method stub String location = event.getServletContext().getInitParameter(CONFIG_LOCATION_PARAM); if (location != null) { if (!location.startsWith("/")) { location = "/" + location; } location = event.getServletContext().getRealPath(location); //如果是xml结尾就用DOM解析,否则就用properties解析 if (location.toLowerCase().endsWith(XML_FILE_EXTENSION)) { DOMConfigurator.configure(location); }else { PropertyConfigurator.configure(location); } } } }
再写个util类,用来生成所要的不同类型的日志
代码如下:
package com.zhaopin.util; import org.apache.log4j.Logger; public class Log4jUtil { public static Logger getSQLLogger(){ return Logger.getLogger("sql"); } public static Logger getBusinessLogger(){ return Logger.getLogger("business"); } public static Logger getSimpleErrorLogger(){ return Logger.getLogger("simpleError"); } public static Logger getNormalErrorLogger(){ return Logger.getLogger("normalError"); } }
下面开始写配置文件,先要在web.xml下添加信息
下面开始写配置文件,先要在web.xml下添加信息
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/Log4j.xml</param-value> </context-param> <!-- 加载log4j配置文件 --> <listener> <listener-class>Log4jConfigListener</listener-class> </listener>
最重要的log4j.xml的配置信息如下:
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/> </layout> </appender> <!-- SQL类日志 --> <appender name="sql" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/usr/local/tomcat/logs/testlog4j.sql.log"/> <param name="Append" value="true"/> <!-- name="DatePattern" 配置这条信息是让日志每天自动生成,名字尾部追加日期格式, 第一天生成的日志需第二天才能看到log 可以通过更改系统时间来看日志的输出 --> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/> </layout> </appender> <!-- 业务类日志 --> <appender name="business" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/usr/local/tomcat/logs/testlog4j.business.log"/> <param name="Append" value="true"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/> </layout> </appender> <!-- 不带执行轨迹错误日志 --> <appender name="simpleError" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/usr/local/tomcat/logs/testlog4j.error.simple.log"/> <param name="Append" value="true"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/> </layout> </appender> <!-- 带执行轨迹错误日志 --> <appender name="normalError" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="/usr/local/tomcat/logs/testlog4j.error.normal.log"/> <param name="Append" value="true"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] (%C:%L) - %m%n"/> </layout> </appender> <logger name="sql" additivity="true"> <priority value="info"/> <appender-ref ref="sql"/> </logger> <logger name="business" additivity="true"> <priority value="info"/> <appender-ref ref="simpleError"/> </logger> <logger name="simpleError" additivity="true"> <priority value="info"/> <appender-ref ref="simpleError"/> </logger> <logger name="normalError" additivity="true"> <priority value="info"/> <appender-ref ref="normalError"/> </logger> <root> <appender-ref ref="STDOUT"/> <priority value="info"/> </root> </log4j:configuration>
在程序中应用时需要编写如下代码: Log4jUtil.getBusinessLogger().info("message!");
发表评论
-
mybatis 一些总结
2014-04-09 13:06 1317最近用mybatis开发,一些总结: 结合spring ... -
STOMP protocol
2013-12-18 00:41 1130STOMP,Streaming Text Ori ... -
java 反射机制更改私有属性 重复创建单例类对象
2012-11-04 00:16 2272单例类: package com.shenli. ... -
log4j.xml 配置
2012-10-29 23:30 979<?xml version="1.0& ... -
Maven 2 plugin fails with cannot find symbol exception when defining two locatio
2012-10-17 23:58 1209https://confluence.atlassian.co ... -
maven 1.5 编译级别
2012-09-25 10:36 823在pom.mxl中增加以下内容 <b ... -
eclipse debug 问题解决
2012-05-18 15:15 0eclipse 问题解决 问题描述:3.7.2里面安装了mav ... -
eclipse plugin update
2012-05-18 14:52 837eclipse plugin update site 总结 ... -
JVM 学习 (2)实战 OutOfMemoryError异常
2012-03-13 17:37 0首先来制造Java堆溢出: import jav ... -
JVM 学习(1)运行时数据区
2012-03-13 11:40 831今天开始学习JVM 先看看运行时数据区的结构: ... -
Ubuntu 上使用 Rxtx
2009-09-04 17:45 0ubuntu下安装和配置RXTX实现串口通讯 RXTX是一套 ... -
自己写的线程池
2009-06-05 15:54 13841 .线程池类:TPTaskProxy import ... -
Ant 获取svn工程并编译
2008-08-05 12:49 3274<?xml version="1.0" ... -
Acegi配置文档
2008-08-05 12:40 1046Acegi是基于Spring的一个 ... -
java基础
2008-06-05 13:33 2322Java基础 从事java相关的编程工 ... -
JBoss Rules 2
2008-06-05 11:40 1203JBoss Rules 学习(二): RETE算法 在JBo ... -
JBoss Rules 1
2008-06-05 11:33 1638JBoss Rules 学习(一): 什么是Rule ... -
junit4参数化测试和easymock的使用
2008-06-05 11:20 3340利用junit4的一些新特性,我们可以方便的对多个参数进行测试 ... -
html编码转换工具
2008-06-04 13:07 3063对于html的特殊标记的处理,有一个好办法,可以轻松的实现ht ...
相关推荐
- 在web.xml中,我们可以使用`<context-param>`标签来指定Log4j配置文件的位置,例如: ```xml <param-name>log4jConfigLocation <param-value>/WEB-INF/classes/log4j.properties ``` - 接着,使用`...
这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...
下面是一个较为完整的 Log4j2.xml 配置模板: ```xml <?xml version="1.0" encoding="UTF-8"?> <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration 后面...
在 SSM 整合项目中,需要在 web.xml 文件中指定 Log4j 配置文件的位置,以便 Spring 可以加载 Log4j 配置文件。下面是一个基本的 web.xml 配置: ``` <listener-class>org.springframework.web.util.Log4...
总结来说,这个例子展示了如何通过`log4j.xml`配置文件和`Log4jConfigListener`监听器在Java Web应用中实现自动化的日志配置。通过这种方法,我们能灵活控制日志的输出,便于调试和问题排查,同时还能根据需要定制...
最后,为了使Spring与log4j集成,我们需要在`web.xml`(对于Web应用)或`context.xml`(对于非Web应用)中引入log4j的初始化参数,确保在应用启动时加载log4j配置: ```xml <param-name>log4jConfigLocation ...
在本节视频教程中,我们将深入探讨如何在Java项目中集成SSH(Struts、Spring、Hibernate)框架,并结合Maven构建工具以及Bootstrap前端框架,来添加和配置`log4j.properties`日志文件。这个过程对于任何Java开发人员...
对于Web应用,如果你使用的是Spring Boot,可以在`src/main/resources`目录下创建`log4j2.xml`,因为Spring Boot默认使用Log4j2。配置方法类似,但需按照Log4j2的XML语法编写。 在实际开发中,我们可能需要根据不同...
但是,如果我们想把 log4j.properties 文件放置在其它目录下,例如:WEB-INF 下和 web.xml 放在一起,这时候就需要我们手动指定 log4j 配置文件的路径,否则系统是找不到的。 在将 log4j.properties 文件放置在其它...
apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1....log4j-xml-1.3alpha-7.jar, log4j.jar, org.apache.log4j_1.2.15.v201005080500.jar, org.apache.log4j_1.2.15.v201012070815.jar
除了使用`log4j.properties`文件外,还可以通过XML文件来配置日志文件的路径。与`properties`文件类似,XML文件也支持变量的使用。 ##### 示例配置 ```xml <appender name="logfile" class="org.apache.log4j....
#### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties` 或 `log4j.xml` 文件用于定义 log4j 的配置规则。 - 配置文件通常放置在项目的根目录或者类路径下。 - 如果未指定配置文件的位置,则 log4j 会...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
配置Log4j,你需要创建一个`log4j.properties`或`log4j.xml`文件,定义日志级别(如DEBUG、INFO、WARN等)、输出目的地和布局格式。这样,你就可以在开发和调试过程中方便地追踪错误和调试信息。 在实际项目中,这...
本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,并着重介绍第二种方法的具体步骤。 #### 一、Tomcat 级别的统一日志管理 这种方法适用于希望对整个 Tomcat ...
2. 创建Log4j配置文件(properties或XML格式)。 3. 在J2EE应用的`web.xml`中配置Log4j初始化。 4. 如果需要,还可以在Struts2配置文件中调整框架级别的日志行为。 通过灵活配置Log4j,开发人员可以有效地监控应用...
根据提供的文件信息,我们可以深入探讨Log4j框架的配置与最佳实践。Log4j是一个流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录功能,可以方便地定制日志级别、格式及输出目标等。...
2. **配置Log4j2**:Tomcat 9允许你在`$CATALINA_BASE/conf`目录下创建`log4j2.xml`文件来定制日志配置。`tomcat9-log4j2.xml`应该包含了如下内容: ```xml <?xml version="1.0" encoding="UTF-8"?> ...
为了使配置生效,我们需要在`web.xml`中添加如下配置,让Spring容器加载log4j配置: ```xml <param-name>log4jConfigLocation <param-value>/WEB-INF/classes/log4j.properties</param-value> <!-- 指定log4j...
Log4j想要生效,我们需要在web.xml中进行配置,以告诉工程去哪加载log4j的配置文件和定义一个扫描器。相比之下,Log4j2就比较简单,我们只需要把log4j2.xml文件放到工程的resource目录下就行了。 Log调用 Log4j和...