如何解耦日志记录实现和API?

时间:2011-01-07 18:09:44

标签: java logging

我正在创建一个小型Java框架,它将记录其事件。我不希望框架依赖于任何特定的日志记录实现(julcommons logginglog4jslf4jlogback等)。相反,我想让我的客户选择他们喜欢的任何东西。

问题是 - 我应该如何实现这种脱钩?我的框架应如何记录其事件?

3 个答案:

答案 0 :(得分:5)

slf4j旨在解决这个问题:它将API与日志记录实现分离。

slf4j本身不是日志记录实现。这取决于后端实现的存在。 Logback恰好在本地实现了slf4j API,但是有log4j,java.util.Logging和其他的绑定。

在某种程度上,您必须拥有供您的客户使用的API。您也可以将其作为现有API之一而不是编写自己的API。

答案 1 :(得分:1)

我认为这很难实现,因为您的代码必须调用某些东西才能记录信息和错误消息。我认为你必须选择一个(我推荐slf4j)并坚持下去 - 这似乎是其他人通常所做的事情。

答案 2 :(得分:0)

我会支持AspectJCommons Logging