`
bloodwolf_china
  • 浏览: 131069 次
社区版块
存档分类
最新评论

使用Spring的Log4jConfigListener注意修改webAppKey

阅读更多
  在使用spring先后开发了两个模块,单独测试都正常。也先后上线运行,之后发现有个模块在启动Tomcat后总是初始化失败,必须到tomcat管理控制台手动启动。找了半天也没发现原因。后来管理员在每次重启Tomcat后这个模块没有运行导致一堆问题和麻烦,今天特意查看了其他的tomcat日志文件,终于发现了问题所在,原来是Log4jConfigListener。使用它是为了随时调整打印日志的级别而不用重启服务。没想到没有享受到它的便利,反而出了一堆问题,只能怪自己没有稍微仔细研究一下。
web.xml
<context-param>
	<param-name>webAppRootKey</param-name>
		<param-value>message.web.root</param-value>
	</context-param>

	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/classes/log4j.properties</param-value>
	</context-param>

	<context-param>
		<param-name>log4jRefreshInterval</param-name>
		<param-value>60000</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>

log4j.properties配置
layoutPattern=[%d{HH:mm:ss}] %-5p : %m%n
log.file=${message.web.root}/logs/app.log

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=${log.file}
log4j.appender.logfile.Append=true
log4j.appender.logfile.DatePattern='.'yyyyMMdd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=${layoutPattern}

其实需要注意的地方就是应用服务器下有不止一个的应用在使用spring的Log4jConfigListener需要修改web环境中webAppRootKey值(这个值其实是web应用的根目录在环境变量名,这样在log4j配置文件中如果有相对web目录的路径就不用写死了)。
否则两个默认值web.root在环境变量中就会有冲突导致第二个应用启动失败。

分享到:
评论
2 楼 shanbaooo 2012-07-16  
学习了,向楼主致敬
1 楼 geeksun 2009-03-13  
webAppRootKey的定义有什么规则吗?

相关推荐

    spring log4j 实例

    Spring框架是Java领域广泛使用的轻量级框架,而Log4j则是日志记录领域的经典工具,提供了丰富的日志配置和管理功能。本实例结合Spring和Log4j,将为你提供一个实用的日志解决方案。 首先,我们要理解Spring是如何...

    spring简单注解+log4j记录日志

    综上所述,"spring简单注解+log4j记录日志"这个主题涵盖了Spring框架中的注解使用、Log4j日志系统以及AOP的应用。通过学习这些内容,初学者可以更好地理解和实践Spring框架,同时提高代码的可维护性和调试效率。在...

    Spring项目中怎么配置log4j

    &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener ``` 以上就是Spring项目中配置log4j的基本步骤和关键知识点。通过合理配置,我们可以实现日志的高效管理和监控,从而提升开发和运维的效率。

    Spring的log4j以及配置文件

    在Spring框架中,我们通常会结合使用Log4j来实现日志记录,因为Log4j具有高度可配置性、性能优秀和功能丰富的特点。 Log4j是Apache软件基金会的一个项目,它是一个强大的日志工具,支持多种输出格式,包括控制台、...

    spring整合log4j

    Spring框架作为Java企业级应用开发的首选,而Log4j则是广泛使用的日志记录工具,两者结合可以提供强大的日志管理能力。下面将详细阐述"spring整合log4j"的相关知识点。 首先,Log4j是Apache的一个开源项目,它为...

    spring日志配置为log4j

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

    spring-boot-starter-log4j2

    2. 配置Log4j2:Spring Boot默认使用`src/main/resources/log4j2.xml`或`log4j2.json`作为Log4j2的配置文件。你可以根据需求自定义日志级别、输出格式、输出位置等。 四、Log4j2配置详解 1. 日志级别:Log4j2支持...

    log4j与spring的详细配置。

    本文将详细讲解Log4j的配置以及如何在Spring项目中使用Log4j。 **一、Log4j基础知识** 1. **Log4j组件**:Log4j主要由三个核心组件构成——Logger(日志器)、Appender(输出器)和Layout(布局器)。 - Logger:...

    Spring版本Log4J的Demo

    在Spring框架中集成和使用Log4J是一项常见的任务,它能帮助我们记录应用程序的运行日志,便于调试、性能分析和问题排查。本项目"SpringLog4JDemo"是一个基于Eclipse的实战示例,旨在教会开发者如何在Spring环境中...

    Spring对Log4J的增强.txt

    &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener ``` - **说明**:通过注册`Log4jConfigListener`监听器,可以在应用启动时自动加载Log4J配置,并在配置文件发生变化时自动刷新配置。 ####...

    spring mvc log4j

    - 可以在运行时通过修改 Log4j 配置文件,或者使用 `log4j-api` 提供的 API 动态调整日志级别。 - 使用 `org.apache.log4j.Logger.setLevel(Level level)` 方法可以改变特定 logger 的日志级别。 7. **日志性能...

    log4j2.xml配置

    spring5取消Log4jConfigListener,运用Log4jServletContextListener代替Log4jConfigListener(log4j2.xml的配置)

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

    &lt;listener-class&gt;org.springframework.web.util.Log4jConfigListener &lt;param-name&gt;log4jConfigLocation &lt;param-value&gt;/WEB-INF/classes/log4j.properties ``` 这个配置指定了 Log4j 配置文件的位置为 /WEB-...

    Spring MVC 框架 整合log4j

    3. **在Spring MVC中使用Log4j**:在Spring MVC的Controller或其他需要记录日志的类中,引入`org.apache.log4j.Logger`,并创建一个实例。例如: ```java import org.apache.log4j.Logger; public class ...

    spring5学习笔记

    4. **Spring Boot**:熟悉其自动配置机制,快速创建独立的Spring应用,并了解Spring Initializr的作用。 5. **数据访问**:学习使用JdbcTemplate、JPA或MyBatis进行数据库操作,以及Spring Data的高级特性,如...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    spring 配置log4j.docx

    4. **Log4jConfigListener**:这是一个监听器类,属于Spring的一部分,用于初始化Log4j。当Web应用启动时,Spring会自动调用这个监听器,读取配置文件并配置日志系统。 5. **log4j配置文件**:在`log4j.properties`...

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

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

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

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

Global site tag (gtag.js) - Google Analytics