我正在创建一个小型Java框架,它将记录其事件。我不希望框架依赖于任何特定的日志记录实现(jul,commons logging,log4j,slf4j,logback等)。相反,我想让我的客户选择他们喜欢的任何东西。
问题是 - 我应该如何实现这种脱钩?我的框架应如何记录其事件?
答案 0 :(得分:5)
slf4j旨在解决这个问题:它将API与日志记录实现分离。
slf4j本身不是日志记录实现。这取决于后端实现的存在。 Logback恰好在本地实现了slf4j API,但是有log4j,java.util.Logging和其他的绑定。
在某种程度上,您必须拥有供您的客户使用的API。您也可以将其作为现有API之一而不是编写自己的API。
答案 1 :(得分:1)
我认为这很难实现,因为您的代码必须调用某些东西才能记录信息和错误消息。我认为你必须选择一个(我推荐slf4j)并坚持下去 - 这似乎是其他人通常所做的事情。
答案 2 :(得分:0)
我会支持AspectJ和Commons Logging。