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

yeg*_*256 1 java logging

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

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

Cam*_*ner 5

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

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

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