`
ihuashao
  • 浏览: 4744486 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

利用 Spring 与 Log4J 巧妙地进行动态日志配置切换并立即生效

阅读更多

  引言:

  在开发与生产环境中,我们有时候需要对日志的配置进行动态切换,要调试、监控和检查系统的运行时信息。   一般有两种方法

  1、通过 Spring 的 Log4jConfigListener 在启动时开启定时器进行定时加载配置文件

  2、通过 JMX 动态控制

  以上可以从我的《利用Spring来管理控制自己的应用程序》专题演讲资料中获取到更加详细的信息,包括示例的源程序,地址为

  http://yulimin.iteye.com/blog/52354

  先说一下上面两种方法的不同与缺点:

  1、通过 Spring 的 Log4jConfigListener,则必须在后台打开线程,现定时扫描,然后来定时工作,有点浪费;

  2、通过 JMX 动态控制的则必须供一个管理的端口,不仅有可能端口被占用(当然有个 workaround 来解决它),还有存在防火墙等等需要配置这个管理端口进行对外暴露等等。

  虽然上述两种方法存在着一些不足,但是这两种方法在特定的场合下,都可以很好地来利用它进行完美地工作。

  现在,利用它进行封装与扩展,我们可以巧妙地进行定制,并通过 Web Console 界面来更方便地进行动态切换配置信息,而且不需要重新启动正在运行中的应用程序。

  文章发表于中国IT实验室,全文请见:

  http://java.chinaitlab.com/Spring/749699.html

  文中代码下载在这里提供下载:

  http://yulimin.iteye.com/blog/200620

分享到:
评论
1 楼 myangle89 2012-08-31  
这个方法有效果,但还是绕了一大圈。

另外:如果每次这样使用,会造成一个问题,log4j会新建立一个线程,这样就会有多个线程同时去扫描,执行的次数越多,建立的这个线程越多。

相关推荐

    spring日志配置为log4j

    总之,将Spring的日志配置为Log4j,涉及到引入Log4j库、编写`log4j.properties`配置文件、以及在Spring配置文件中声明使用Log4j。理解这些步骤和配置项对于优化日志记录,排查问题以及监控系统运行状态至关重要。

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

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能和灵活的配置,使得我们可以根据需要动态地改变日志的输出路径。本文将深入探讨如何在Log4j中实现日志输出路径的动态配置。 首先,我们要理解Log4j...

    spring简单注解+log4j记录日志

    Log4j是Apache组织开发的日志记录工具,它允许开发者控制日志信息的输出级别(如DEBUG、INFO、WARN、ERROR等),并能将日志写入文件、控制台、数据库等多种目的地。在项目中配置Log4j,通常需要一个配置文件(如log4...

    Spring Aop+Log4j 动态日志

    本篇将详细探讨如何结合Spring AOP和Log4j实现动态日志记录。 Spring AOP是Spring框架的一个重要特性,它允许我们以一种声明式的方式处理横切关注点,如日志、事务管理等。AOP的核心概念包括切面(Aspect)、通知...

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

    Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...

    Spring的log4j以及配置文件

    在Spring框架中,我们可以使用Spring的`PropertyPlaceholderConfigurer`来读取`log4j.properties`文件中的配置,并动态注入到应用中。这允许我们在不重启应用的情况下,通过修改外部的配置文件来调整日志级别和输出...

    Spring项目中怎么配置log4j

    在Spring项目中配置log4j是一项基础且重要的工作,它能帮助我们记录应用程序的运行日志,便于调试、排查问题和性能分析。Log4j是一个广泛使用的Java日志框架,提供灵活的日志记录功能。接下来,我们将详细讲解如何在...

    log4j与spring的详细配置。

    综上所述,Log4j与Spring的整合使得日志管理更加便捷,同时,Log4j丰富的配置选项和强大的功能使其成为Java日志处理的首选工具。理解并熟练运用Log4j配置,能够极大地提升开发效率和问题排查能力。在实际开发中,...

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

    Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...

    spring整合log4j

    Spring提供了与各种日志框架的集成,包括Log4j,使得日志配置更加方便。 整合Spring和Log4j,我们需要完成以下步骤: 1. **引入依赖**:在项目的Maven或Gradle构建文件中添加Log4j的依赖库。对于Maven,可以在`pom...

    spring log4j 实例

    因此,我们可以通过配置Spring的logging.properties文件或log4j.properties文件来设置Log4j的日志级别、输出格式、目的地等参数。 下面是一份基本的`log4j.properties`配置示例: ``` # 设置根日志级别为DEBUG log...

    动态设置log4j的日志级别

    Log4j是Apache组织提供的一款广泛使用的日志框架,它允许开发者灵活地控制日志信息的输出。本文将详细讲解如何动态设置Log4j的日志级别,以满足不同场景下的需求。 首先,我们要理解日志级别的概念。Log4j提供了多...

    spring-boot-starter-log4j2

    Log4j2的设计目标是提供灵活的日志记录方式,包括异步日志记录、动态配置、插件架构等特性,使得它在性能和可扩展性方面优于其他日志框架。 二、Spring Boot与Log4j2的结合 Spring Boot通过starter机制简化了第三...

    spring mvc log4j

    将 Log4j 集成到 Spring MVC 应用中,可以方便地进行日志管理和分析。 1. **Log4j 概述** - 日志框架的作用:记录应用程序运行过程中的信息,如错误、警告、调试信息等,帮助开发者追踪和定位问题。 - Log4j 特点...

    springboot log4j2 多线程 动态日志文件名 动态日志路径 RollingFile

    Springboot 多线程应用源代码,根据线程输出到不同的日志文件, 子线程可以输出日志到父线程日志文件。 动态日志文件路径,文件名 动态输出多个日志文件 适用于复杂日志输出的用例 日志文件为RollingFile

    Spring版本Log4J的Demo

    在Spring应用中,Log4J可以通过XML配置文件进行设置,如`log4j.properties`或`log4j.xml`。 配置Log4J时,我们需要定义Appender,这是日志信息的输出目标,例如控制台(ConsoleAppender)、文件(FileAppender)或...

    spring log4j配置文件资料

    总结来说,Spring 和 Log4j 的整合使得我们能够在 Spring 应用程序中方便地管理和控制日志,同时通过配置 Log4j 文件,可以针对性地获取 Hibernate 和 Proxool 的运行信息,对于开发和维护高质量的 Java 应用程序...

    spring框架和log4j日志用到的jar包

    使用Spring时,开发者还需要注意与其他Java库的兼容性,例如JDBC驱动、ORM框架(如Hibernate、MyBatis)的jar包,以及用于日志记录的log4j.jar、log4j-api.jar和log4j-core.jar。在实际项目中,这些jar包通常会被...

    log4j与web.xml的配置

    本文将详细讲解如何将Log4j整合到Web应用并通过web.xml进行配置,以实现日志信息的输出和管理。 1. **Log4j介绍** - Log4j由Apache软件基金会开发,提供了一种简单但功能强大的日志记录API,可以控制日志信息的...

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下

    为了使配置生效,我们需要在`web.xml`中添加如下配置,让Spring容器加载log4j配置: ```xml <param-name>log4jConfigLocation <param-value>/WEB-INF/classes/log4j.properties</param-value> <!-- 指定log4j...

Global site tag (gtag.js) - Google Analytics