2

根据 Spring Doc API http://docs.spring.io/spring-framework/docs/current/javadoc-api/index.html?org/springframework/web/context/ContextLoaderListener.html -

这个 (ContextLoaderListener) 监听器应该在 web.xml 中的 Log4jConfigListener 之后注册

我不明白为什么要先注册 Log4jConfigListener?

4

2 回答 2

4

该文档没有详细说明他们对这个订单的偏好。我假设建议使用此顺序,以便在注册之前配置日志记录ContextLoaderListener,这将允许在注册期间适当地记录调试消息。

于 2013-09-11T09:20:19.743 回答
1

当使用自定义 log4j 配置(例如每个应用程序 log4j-app.xml)时,这需要在其他任何事情之前进行引导。如果不是,log4j 将使用全局 log4j.xml(或默认值)而不是自定义文件进行引导。

ContextLoaderListener(或许多其他类)将触发引导 log4j,在这种情况下,您可能会得到与预期不同的配置。此外,应用程序关闭时尝试破坏/关闭全局 log4j 系统的风险也会增加Log4jConfigListener......(如果您不在应用程序中发布 log4j 但依赖于应用程序服务器发布的 log4j 版本,则可能会出现这种情况)。

于 2013-09-11T11:28:43.423 回答