非原创。只是对网上的资料做了补充。
通过以下配置可以配置将某级别范围的日志信息写入到指定文件中。
可以配置输出日志的级别优先级。
分为三部分:
1 日志输出文件log4j.xml的配置。
2 加载日志配置文件的servlet类。
2 web.xml配置
当然,还要加载必要的jar包。
1
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="infoChannel"
class="org.apache.log4j.RollingFileAppender">
<!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->
<param name="File" value="${catalina.home}/logs/test.log" /><!-- 设置File参数:日志输出文件名 -->
<param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="MaxBackupIndex" value="10" />
<param name="MaxFileSize" value="10KB"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" /><!-- 设置输出文件项目和格式 -->
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" /><!--设置将INFO级别的日志通过该通道输出-->
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<appender name="debugChannel"
class="org.apache.log4j.RollingFileAppender">
<!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->
<param name="File" value="${catalina.home}/logs/testdebug.log" /><!-- 设置File参数:日志输出文件名 -->
<param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="MaxBackupIndex" value="10" />
<param name="MaxFileSize" value="10KB"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" /><!-- 设置输出文件项目和格式 -->
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</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>
<!--设置输出的级别大于等于DEGUG priority value="DEBUG" / -->
<!--设置输出的级别-->
<priority value="INFO" />
<!-- 设置接收所有输出的通道 -->
<appender-ref ref="debugChannel" />
<appender-ref ref="infoChannel" /><!-- 与前面的通道id相对应 -->
<appender-ref ref="STDOUT" />
</root>
</log4j:configuration>
2
package com.test.log;
import javax.servlet.ServletException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.xml.DOMConfigurator;
import javax.servlet.http.HttpServlet;;
/**
*
* 加载log4j日志配置文件
*
*/
public class ExtendedActionServlet extends HttpServlet {
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();//此方法不能省,ActionServlet覆盖了的此方法中有很多重要操作
}
}
3 web.xml文件中增加servlet配置
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>
com.test.log.ExtendedActionServlet
</servlet-class>
<init-param>
<param-name>log4j</param-name>
<!-- 这里标出了位置 -->
<param-value>/WEB-INF/log4j.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
分享到:
相关推荐
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
log4j是一个流行的Java日志记录工具,提供了灵活的日志记录和管理功能。在Java程序中,log4j配置正确是非常重要的,本文将详细介绍log4j配置的各个方面。 一、log4j配置文件 log4j的配置文件通常是log4j....
接下来,`log4j配置说明.txt`文件通常会提供更详细的解释和示例,包括如何配置不同的appender(如FileAppender、RollingFileAppender等),如何定义不同logger的级别,以及如何使用自定义的error handler和filter。...
Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...
Log4j是一款由Apache出品的日志记录工具,它提供了灵活的日志级别控制和多样化的日志输出方式,广泛应用于Java应用的开发中。本文将深入解析log4j的配置与加载机制,帮助开发者更好地理解和应用log4j。 #### Log4j...
Java日志工具Log4j是Java开发者非常熟悉的一个开源日志框架,它为应用程序提供了灵活且高效的日志记录功能。Log4j不仅简单易用,而且功能强大,能够帮助开发者在开发、测试和生产环境中方便地收集和分析日志信息。...
本文将深入讲解如何配置log4j以实现日志输出到控制台和文件,并提供相关代码实例和案例分析。** ### 一、Log4j简介 Log4j是Apache组织开发的一个开源项目,用于生成日志信息。它提供了灵活的配置方式,支持多种输出...
2. **配置全局 Log4j 属性文件**:在任意位置创建 `log4j.properties` 文件,并设置全局的日志级别、输出格式及存储路径等。通常会将该文件放置在 Tomcat 的 `conf` 目录下。 ```properties log4j.rootLogger=...
Log4j是Apache的一个开源项目,它为Java应用程序提供了一个灵活的日志系统。这个系统能够帮助开发者记录程序运行过程中的各种信息,包括错误、警告、调试信息等,这对于软件的调试、性能分析以及问题追踪非常有帮助...
Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
Java日志包中的Log4j是一个广泛使用的日志记录框架,尤其在Java应用程序中,它提供了灵活的日志配置和丰富的功能。Log4j的核心在于它的灵活性,允许开发者根据需要定制日志输出,从简单的控制台打印到复杂的企业级...
log4j2配置文件,按照文件大小划分日志,保存日期天数内的日志,指纹日志命名规则,日志输出等级等功能
使用Log4j2的Layout组件定义日志输出格式。例如,我们可以使用PatternLayout,并自定义模式来指定哪些字段需要脱敏。例如,`%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n` 是一个基本的日志...
在实际应用中,可能会根据需求调整日志的输出策略,比如添加过滤器、使用不同的布局模式,或者配置多个Appender同时将日志输出到控制台、文件和数据库。总之,理解和掌握Log4j的使用,能够极大地方便开发者进行日志...
3. 配置Log4j:在项目根目录下创建log4j配置文件,定义日志输出的级别、目标和格式。 4. 记录日志:使用logger对象的方法,如`logger.debug("Debug信息");`、`logger.info("Info信息");`等。 在实际开发中,Log4j的...
### Java Log4j 配置详解 #### 一、Log4j 概述 Log4j 是 Apache 的一个开源项目,被广泛应用于 Java 应用程序的日志记录中。通过 Log4j,开发者可以轻松控制日志信息的输出目的地、格式以及级别。这使得日志的管理...
理解Log4j2的配置和使用是每个Java开发者必备的技能,这对于日后的故障排查和系统维护至关重要。在实际应用中,你可以根据需求调整配置,例如增加日志过滤规则、添加更多的日志输出目标,或者改变日志格式等。