2015-11-05 79 views
0

我使用Java & Maven创建了一个库,其中包含一些常见的Spring功能,可在各种基于Spring的项目中重复使用。基于Spring的库的日志记录方法

该库显然需要记录error/information消息。 Spring允许开发人员使用他们喜欢的任何日志库,我如何让我的库执行相同的操作?

回答

0

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

根据您配置的内容,commons-logging然后会将日志记录消息传递给实际实现。这使您可以使用commons-logging编写代码,用户可以使用commons-logging支持的任何日志记录框架。

就我个人而言,我会与slf4j(简单记录外观4 Java),它类似于commons-logging,但更新和功能几乎相同的方式。

也可以桥接不同的库或外观,以便即使库使用不同的日志记录框架,它们也会始终在您选择的记录器中结束。在我右边的显示器上有如下桥接库:jcl-over-slf4j(commons-logging to slf4j),log4j-over-slf4jjul-to-slf4j(java.util.logging to slf4j)。

注:参见注释链接了解SLF4J =好,JCL =坏了如何更多信息;)

+0

SLF4J和共享记录在一个AFAIK非常不同的方式工作,但他们的意图是类似的。总而言之,通过使用带有适当桥接库的SLF4j,来自commons-logging(例如Spring)的日志可以重定向到SLF4J,从而允许您集中和利用不受commons-logging支持的SLF4J后端。 (这不应该由OP编写的库来控制) –

+0

我对'commons-logging'的内部工作没有太多线索,但如果它们不同,我不会感到惊讶。我将添加一些关于桥库的信息。 – Kayaman

+1

如果你有兴趣:) http://stackoverflow.com/questions/3222895/what-is-the-issue-with-the-runtime-discovery-algorithm-of-apache-commons-logging –