我在其构建路径上有一个带有 log4j.jar 的项目 A。我有许多类具有以下形式的日志记录语句:
Logger _log = Logger.getLogger(A.<>.class);
...
_log.info("...");
我将项目作为 jar 导出到另一个项目 B。项目 B 已经有自己的 log4j jar 和自己的 .xml 配置文件。我想从 A 配置特定的类以在不同的“级别”登录到控制台 Apender。请问我该怎么做?
一般来说,你不会。通常,您希望拥有一个 log4j 配置文件。但我想您可以从代码中显式加载配置,如log4j 文档中所述
选择一个 log4j.jar 版本,可能是较新的版本。您只能使用一个版本。您需要合并项目 A 和项目 B 的日志记录配置。您可以在运行时在 log4j 类中执行此操作,但不要这样做。只需咬紧牙关,在源代码管理中将它们合并一次。
好吧,基本上,你不应该那样做。可以这样想:如果这样做的话,任何应用程序中包含的每个库都将托管自己的日志记录配置,很可能会以未指定的顺序覆盖应用程序中的任何配置,并且相互覆盖. 你不会想要那个。所以不要。
[如果您真的非常想这样做,您可以在 jar 中拥有可以被主应用程序中的 xml 文件覆盖的属性文件。在此处查看详细信息。但是不要。:)]