`
Veromca-源代码
  • 浏览: 41582 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Log4j 动态更新配置文件【热配置】

阅读更多
由于项目要求Log4j需要支持热配置,研究了一下Log4j中实现修改配置文件后实时生效的方法,考虑到效率问题,最后采用了第二种方法,以下是具体实现实例:

一.使用log4j自带的动态更新配置文件【轮询方式来实现】:
主要调用 PropertyConfigurator 或者 DOMConfigurator类的 configureAndWatch(String configFileName)或者 configureAndWatch(String configFileName, long delay)来实现。

注意:在log4j中每调用一次configureAndWatch方法都会启动一个新的扫描线程。


public class TestLog4j
{
    public static Logger logger = Logger.getLogger(TestLog4j.class);
    static
    {
        PropertyConfigurator.configureAndWatch("./log4j.properties", 60000);
    }
    public static void printLog()
    {
        if (logger.isDebugEnabled())
        {
            logger.debug("debug!!");
        }
        if (logger.isInfoEnabled())
        {
            logger.info("info!!");
        }
        logger.error("error!!");
    }
    public static void main(String[] args)
    {
        while (!Thread.interrupted())
        {
            TestLog4j.printLog();
            try
            {
                Thread.sleep(1000);
            } catch (InterruptedException e)
            {
            }
        }
    }
}



二.事件触发方式实现:
调用PropertyConfigurator对象或DOMConfigurator对象的configure(String configFilename)方法。

import org.apache.log4j.xml.DOMConfigurator;

public class TestLog4j
{

	
	/**
	 * 
	 * Description:reload Log4j.xml<br>
	 *
	 */
	private void reloadLog4jConfig(String filePaht)
	{
		DOMConfigurator.configure(filePath);//加载.xml文件 		
	} 
	
	/**
	 * Description:<br>
	 * 
	 * @param args
	 */
	public static void main(String[] args)
	{
		TestLog4j test = new TestLog4j();
		String filePaht =  "src/test/resources/log4j.xml";
		test.reloadLog4jConfig(filePaht);
	}

}


1
1
分享到:
评论
1 楼 paven 2017-06-22  
根本无效的好吗

相关推荐

    log4j.properties配置文件

    ### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...

    Log4J_全能配置文件.pdf

    ### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...

    log4j.jar包,和log4j.properties配置文件下载

    2. **log4j.properties**:这是一个配置文件,用于定制Log4j的行为。在这个文件中,你可以设置日志级别,指定哪些类或包的日志应该被记录,以及日志应该如何被输出(即选择哪个Appender)。例如,你可能想要将DEBUG...

    log4j使用jar包和log4j.properties配置文件

    本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...

    log4j(二):动态配置日志输出路径

    在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml &lt;!-- web.xml 示例 --&gt; ...

    log4j日志配置以及配置文件详解

    接下来,`log4j配置说明.txt`文件通常会提供更详细的解释和示例,包括如何配置不同的appender(如FileAppender、RollingFileAppender等),如何定义不同logger的级别,以及如何使用自定义的error handler和filter。...

    log4j及配置文件

    三、Log4j配置文件 Log4j的灵活性很大程度上体现在其配置文件中,通常命名为`log4j.properties`或`log4j.xml`。配置文件定义了日志记录的行为,包括日志级别、输出目的地、格式等。在提供的`log4j.txt`文件中,我们...

    log4j2配置文件

    log4j2配置,文件分割,自动清除等相关配置。

    log4j.properties配置详解

    #### 一、Log4j配置文件基本概念 Log4j是一种广泛应用于Java应用程序的日志框架,它可以帮助开发者轻松管理应用程序的日志记录过程。Log4j支持多种配置方式,其中.properties文件配置是最常用的一种。通过....

    log4j2的配置文件完整版

    这个“log4j2的配置文件完整版”应该包含了Log4j2所有可能的配置选项,允许开发者精细控制日志输出的行为。 在Log4j2中,配置文件是XML、JSON或YAML格式的文本文件,它定义了日志的级别、输出目的地、布局格式以及...

    log4j 动态配置

    ### Log4j动态配置详解 #### 一、Log4j简介与重要性 Log4j是Apache的一个开源项目,用于实现日志记录功能。它提供了一种强大的机制来控制日志的生成,使得日志信息可以被输出到不同的目的地,如控制台、文件等,...

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

    Log4j 配置文件说明 Log4j 是一种流行的日志记录工具,用于记录和管理应用程序中的日志信息。配置文件是 Log4j 的核心组件之一,通过配置文件可以控制日志记录的级别、输出目的地和格式。在本文中,我们将详细介绍 ...

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

    在 SSM 整合项目中,需要在 web.xml 文件中指定 Log4j 配置文件的位置,以便 Spring 可以加载 Log4j 配置文件。下面是一个基本的 web.xml 配置: ``` &lt;listener-class&gt;org.springframework.web.util.Log4...

    log4j-1.2.11jar和log4j.properties配置文件

    本篇将详细介绍Log4j 1.2.11版本以及其核心组件——`log4j.properties`配置文件。 **一、Log4j简介** Log4j是基于组件的日志框架,它提供了一种灵活的方式来记录应用程序中的事件。这些事件可以是错误、警告、调试...

    Log - Log4j - log4j.properties配置文件

    本文将深入探讨Log4j的配置文件`log4j.properties`,以及如何在Hibernate框架中集成Log4j。 `log4j.properties`配置文件是Log4j的核心,它定义了日志输出的行为,包括日志级别、输出目的地、格式等。以下是一些关键...

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    **二、Log4j配置文件** 在压缩包中,还包含了一份名为`log4j.properties`的配置文件。这是Log4j使用的一种配置格式,基于Java Properties格式。配置文件决定了日志信息如何输出、输出到哪里,以及日志的级别等关键...

    SpringBoot框架配置log4j和log4j2的配置代码

    3. **配置SpringBoot**:在`application.properties`中指定Log4j配置文件位置。 ```properties logging.config=classpath:log4j.properties ``` ### SpringBoot与Log4j2 Log4j2作为Log4j的升级版,提供更好的性能...

    log4j.xml 配置文件

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

    log4j的配置文件.zip

    `log4j.properties`文件是Log4j的核心配置文件,它定义了日志输出的行为,包括日志级别、输出目的地、格式以及过滤规则等。 在`log4j.properties`文件中,有以下几个关键知识点: 1. **日志级别(Logging Levels)...

    log4j2的日志xml配置文件

    log4j2的配置文件

Global site tag (gtag.js) - Google Analytics