Java SDK 的 log4j2 日志记录

log4j2 logging for a Java SDK

假设我们构建了一个 Java SDK,不同的项目可以通过将其作为 jar 添加到类路径中或将其作为依赖项添加到 maven pom.xml 或 gradle 中来使用文件。当其他项目正在使用此库时,来自 SDK 的日志在 运行 时不可见。我尝试使用 SL4J,当它被其他项目使用时,none 的日志在 运行 时间可见。我应该使用 log4j2 吗?如果是,我应该在我的 SDK 中提供一个 log4j 配置/属性文件吗? properties/configuration 会在 运行 时间从消费者图书馆取走吗?这方面的最佳做法是什么?能请教一下吗?

最佳实践 #1:永远不要在您的 jar 中包含日志记录配置文件。

使用您的库的应用程序可能希望提供它们自己的日志记录配置。如果其中一个 jar 包含不同的配置,它就会成为这些应用程序的“有趣”猜谜游戏,以弄清楚为什么它们的配置不起作用。 (并且根据类路径的顺序,它们的配置有时可能优先于库中的配置,所以有时它 工作,只是为了让它更具挑战性......)