【问题标题】:Logging Method for Spring Based Library基于 Spring 的库的日志记录方法
【发布时间】:2016-02-05 23:40:59
【问题描述】:

我使用 JavaMaven 创建了一个库,其中包含一些常见的 Spring 功能,以便在各种基于 Spring 的项目中重用。

库显然需要记录error/information 消息。 Spring 允许开发人员使用他们喜欢的任何日志库,我如何让我的库也这样做?

【问题讨论】:

    标签: java spring maven logging jar


    【解决方案1】:

    Spring 使用commons-logging,它是一个日志外观,允许您在不知道实际日志框架是什么的情况下编写日志代码。

    根据您的配置,commons-logging 会将日志消息引导至实际实现。这允许您使用commons-logging 编写代码,并且用户可以使用commons-logging 支持的任何日志框架。

    我个人会选择slf4j(Simple Logging Facade 4 Java),它类似于commons-logging,但更新的并且功能几乎相同。

    还可以桥接不同的库或外观,这样即使库使用不同的日志记录框架,它们也总是会出现在您选择的记录器中。查看我右侧的监视器,有如下桥接库:jcl-over-slf4j(commons-logging 到 slf4j)、log4j-over-slf4jjul-to-slf4j(java.util.logging 到 slf4j)。

    注意:有关 slf4j = 好,JCL = 坏的更多信息,请参阅 cmets 中的链接;)

    【讨论】:

    • SLF4J 和 commons-logging 的工作方式非常不同,尽管它们的意图是相似的。无论如何,只是附带说明一下,通过将 SLF4j 与适当的桥库一起使用,来自 commons-logging(例如来自 Spring)的日志可以重定向到 SLF4J,因此允许您集中和使用 commons-logging 不支持的 SLF4J 后端. (这不应该是由 OP 编写的库控制的东西)
    • 我对@9​​87654331@ 的内部运作没有太多线索,但如果它们不同,我不会感到惊讶。我将添加一些有关桥库的信息。
    • 啊,谢谢,有正当理由想要避免使用特定框架总是好的 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多