【问题标题】:log4j2 logging for a Java SDKJava SDK 的 log4j2 日志记录
【发布时间】:2019-08-22 00:54:24
【问题描述】:

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

【问题讨论】:

    标签: java log4j2 slf4j


    【解决方案1】:

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

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

    【讨论】:

    • 为什么我们不应该包含配置文件。
    • 我应该怎么做? LOG4J 还是 SL4J?他们的记录器如何与我的连接?
    • 我为 Log4j 做贡献,我有偏见。但我对这个问题的详细回答在这里:stackoverflow.com/a/41500347/1446916
    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2021-08-28
    • 2019-10-10
    相关资源
    最近更新 更多