java - Java SDK 的 log4j2 日志记录

标签 java log4j2 slf4j

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

最佳答案

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

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

关于java - Java SDK 的 log4j2 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55445266/

相关文章:

unit-testing - 使用 StaticLoggerBinder 对类进行单元测试

java - 如何忽略子字符串中的空格?

java - 小程序中没有看到logback配置

来自父类(super class)的 Java 子类构造函数

log4j2 - Karaf 4.0.5 与 log4j2 : my bundle log output always in console but should be in file

java - 如何以编程方式从现有 lo4j2.xml 加载属性名称

elasticsearch - 错误无法定位插件类型 [对于 RollingFile 和 TimeBasedTriggeringPolicy]

slf4j - 如何在 logback-access 中抑制某些请求的日志记录?

java - 为什么 Java 的 String 有方法 length() 而不是属性 length(像数组一样?)

java - Java 中的 isReachable 似乎没有按照预期的方式工作