【问题标题】:Initializing Log4j within Web Context(tomcat)?在 Web 上下文(tomcat)中初始化 Log4j?
【发布时间】:2016-03-18 09:43:14
【问题描述】:

我在我的 tomcat 环境中检查了 log4j 设置。虽然我的 webapp 或“common libs”文件夹中没有 log4j-web.jar 文件,但 log4j 已正确初始化。我只在我的类路径中添加了 log4j.properties。就是这样,log4j 正在工作。

我正在使用 spring mvc,sl4j-api.jar 和 sl4j-jcl.jar 在我的类路径中。

我的问题是:log4j 如何正常工作并获取配置?

【问题讨论】:

    标签: java spring logging log4j


    【解决方案1】:

    你说你使用了 log4.properties,所以我假设你使用的是 log4j 1.2.x (log4 2 use log4j2.properties)

    当 log4j 类在 LogManager 类的静态初始化器中加载到内存中时,Log4 执行默认初始化。
    请参阅部分:manual 中的默认初始化过程

    只要将 log4j.properties 放入类路径,它就会触发 log4j 日志记录。
    此过程将在任何环境(tomcat 容器或其他)中执行。
    如果您想跳过此程序,请注意程序中的第 1 项:

    将 log4j.defaultInitOverride 系统属性设置为任何其他 value then "false" 将导致 log4j 跳过默认初始化 程序(本程序)。

    Log4Web 是依赖于log4j 2 的扩展,因此与您的情况无关。

    sl4j-api.jar 和 sl4j-jcl.jar 需要log4j-over-slf4j,如果您要迁移现有代码以使用 SLF4J 而不更改代码本身。 如果您对此类迁移不感兴趣,则可以忽略它们。

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2019-07-18
      • 2011-05-22
      • 2012-09-04
      相关资源
      最近更新 更多