提问者:小点点

Java SDK的log4j2日志记录


假设我们构建了一个JavaSDK,不同的项目可以通过将其添加为类路径中的jar或添加为mavenpom.xml或gradle文件中的依赖项来使用它。当其他项目使用该库时,SDK中的日志在运行时不可见。我尝试使用SL4J,当其他项目使用它时,没有一个日志在运行时可见。我应该用log4j2吗?如果是,我应该在我的SDK中提供log4j配置 /properties文件吗?是否会在运行时从消费者库中提取属性/配置?这方面的最佳实践是什么?你能建议一下吗?


共1个答案

匿名用户

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

使用库的应用程序可能希望提供自己的日志记录配置。如果其中一个JAR包含不同的配置,那么这些应用程序就可以通过“有趣”的猜测游戏来找出其配置不起作用的原因。(根据类路径顺序,它们的配置有时可能优先于库中的配置,因此有时它会起作用,只是为了让它更具挑战性……)