【问题标题】:How to properly use log4j while having two maven web modules?如何在拥有两个 Maven Web 模块的同时正确使用 log4j?
【发布时间】:2016-09-15 01:59:46
【问题描述】:

我创建了第一个 maven web 模块 (war) 并使用 log4j.properties 配置了 log4j。我将属性文件放在 usr/main/resources 中并且它工作。然后我添加了另一个 maven web 模块并在那里进行了相同的配置,只更改了记录器的文件路径,目的是为每个应用程序提供两个日志文件。我没有收到任何错误,但在我在网络服务器(Tomcat)中部署第二次战争后它不起作用。现在,即使对于第一个应用程序,日志记录也不起作用。

我什至尝试将 log4j.properties 放在战争之外并在 web.xml 中添加 log4jlistener,但在这种情况下,正在创建日志文件,但没有写入任何内容。知道是什么原因造成的吗?我应该遵循另一种方法吗?

【问题讨论】:

    标签: java maven spring-mvc tomcat log4j


    【解决方案1】:

    您需要在每个应用程序中都有 jar 文件,以免混淆。如果你只有公共库中的jar文件,系统会很混乱。

    另一个问题是一些 Maven 工件依赖于损害系统的 jar 文件。您希望在 web 应用程序的 POM 中拥有实现的 jar 文件,但不希望它们在 web 应用程序使用的 jar 文件中。 log4j(版本 1.x)日志框架有多个实现 jar 文件。如果将不同实现的 jar 文件组合在一起,系统会很混乱。

    https://bradleyaross.wordpress.com/2016/05/05/java-logging-frameworks/

    我添加了一些依赖项和排除项以使事情正常进行。

    【讨论】:

      【解决方案2】:

      https://logging.apache.org/log4j/2.0/manual/webapp.html 页面描述了您应该如何在 Web 应用程序中配置/设置 log4j。

      https://logging.apache.org/log4j/2.0/manual/logsep.html 中的方法 段落描述了如何将 Web 服务器配置为每个 Web 应用程序具有不同的配置。

      【讨论】:

      • 你能说得更具体些吗?这个链接在哪里解决了我的问题?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      相关资源
      最近更新 更多