【问题标题】:Log4j and Websphere 7 application serverLog4j 和 Websphere 7 应用服务器
【发布时间】:2012-09-28 21:34:21
【问题描述】:

我收到以下错误,并且未创建日志文件。我知道 log4j.properties 没有被正确选择

log4j:WARN No appenders could be found for logger
  1. log4j jar 位于 lib 和类路径中
  2. log4j.properties 位于 src 文件夹中,并在构建时加载到 classes 文件夹

我尝试了很多方法来修复这个错误,比如使用 log4j 实现类添加服务文件夹来修复 WAS 日志记录冲突也尝试了 sfl4j

有没有人找到解决 WAS7 或更高版本的 log4j 问题的方法?

【问题讨论】:

  • 您可以尝试外部化您的属性文件并通过 VM 参数加载它:-Dlog4j.configuration=<path_to_log4j_file>
  • 您的代码是直接使用 log4j 还是通过公共日志记录?还是仍然像您在问题中指出的那样尝试 sl4j?
  • 我认为这已经回答了[这里][1] [1]:stackoverflow.com/questions/6608775/…

标签: log4j websphere


【解决方案1】:

您可以通过指定 log4j.debug=true 系统变量来对 Log4J 本身进行故障排除。然后,您将确切地知道 Log4J 在内部发生了什么。

您的log4j.properties 文件是否包含任何记录器定义?或许你可以把文件贴在这里?

【讨论】:

    【解决方案2】:

    我遇到了同样的问题(WAS 忽略了我的 META-INF/services/org.apache.commons.logging.LogFactory 文件)。

    当我将 commons-logging 降级到 1.0.3 以匹配 WAS 版本时,问题得到了解决。更多信息请查看this article

    【讨论】:

      【解决方案3】:

      考虑改用 Java Logging 框架,该框架内置于标准 Java 运行时环境中,无需额外安装或配置。相关类在 java.util.logging 包中,并且有使用它们的过程的概述here(它的工作方式与 log4j 非常相似)。

      【讨论】:

      • 这不是问题的答案。无论是否使用 Log4J,这是完全不同的故事。更改日志框架可能需要付出很多努力,因为需要重构每个使用日志的类。恕我直言,用 java.util.logging.Logger 替换 Log4J 并不是一个好主意。它可能适用于较小的项目,但缺乏灵活性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 2011-09-05
      • 2011-12-04
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多