【发布时间】:2012-07-30 14:46:08
【问题描述】:
我想提供一个客户端库,用于将 rest-request 包装到服务器并记录错误,以便客户端可以在他的应用程序中使用它并查看日志。 (还有一个问题是我应该只记录错误还是重新抛出它。当我使用异步调用(多线程)时,这可能会很棘手..)
我读到 slf4j 可能会有所帮助,因为使用该库的客户可以选择他喜欢的日志记录框架。
有些东西让我对这个 slf4j 的东西感到困惑。如果他得到我的库,而我只是提供,假设是 slf4j-api,则会引发错误,导致不包括 SLF4J 绑定。解决方案可能是他必须自己包含绑定,问题是他是否愿意阅读自述文件以获取这些重要信息。
如果我包含一个“标准”-slf4j 绑定(例如简单的绑定),应用程序不能“覆盖”它,因为类路径上只允许一个绑定。不会再灵活了
所以我想只使用 log4j 而忘记所有其他日志记录框架。我可能想在这个问题上变得复杂,也许有人可以帮助我解决这个问题?
【问题讨论】:
-
您的客户端库看起来如何?它是包含所有内容(包括日志框架)的单个 JAR 文件,还是包含您的库及其依赖项的存档?
-
从 1.6.0 版本开始,如果在类路径上找不到绑定,则 SLF4J 将默认为无操作实现。因此,slf4j-api 本身不会在类路径上找不到绑定时抛出异常。
标签: java logging jar log4j slf4j