Java库的记录器

时间:2012-03-16 15:59:43

标签: java logging packaging

我正在编写一个库来收集我将在不同应用程序中使用的各种函数。我希望它为库的用户生成可见的日志语句,即,如果我正在构建应用程序并且我正在使用该库,我希望库生成对我可见的日志语句。我怎么做?由于日志文件将由应用程序的开发人员配置,我的库如何知道如何记录?

3 个答案:

答案 0 :(得分:24)

如果您正在开发,其他人将在其应用程序中包含您应使用日志记录。否则,您强制库的用户配置并包含您为其应用程序选择的 选择的日志框架>。

例如,如果您使用 log4j ,但使用您的库的开发人员使用 logback ,则必须包含log4j配置文件和log4j jar(或者{{3让你的图书馆开心。

Logging Facades解决了这个问题(来自Apache Commons Logging):

  

编写库时,记录信息非常有用。但是,有许多日志记录实现,并且库不能在库所属的整个应用程序上强制使用特定的一个。

     

Logging包是不同日志记录实现之间的超薄桥。使用commons-logging API的库可以在运行时与任何日志记录实现一起使用。 Commons-logging支持许多流行的日志记录实现,为其他人编写适配器是一项相当简单的任务。

或者来自SLF4J的推理:

  

Java或(SLF4J)的简单日志外观用作各种日志框架的简单外观或抽象,例如: java.util.logging,log4j和logback,允许最终用户在部署时插入所需的日志记录框架。

伐木外墙的候选人是:

我个人建议SLF4JSLF4J)。

答案 1 :(得分:3)

标准解决方案是:

所有这些都允许您通过配置配置日志文件位置。

答案 2 :(得分:2)

日志文件的位置在日志框架配置中的包外部设置。 配置文件通常在classpath上。它的外观取决于您使用的日志框架 - 我建议使用SLF4JLogback