Java 库的记录器
我正在编写一个库,该库收集了我将在不同应用程序中使用的各种函数。我希望它生成对库用户可见的日志语句,即,如果我正在构建一个应用程序并且我正在使用库,我希望库生成对我可见的日志语句。我该怎么做?由于日志文件将由应用程序的开发人员配置,我的库将如何知道如何记录?
我正在编写一个库,该库收集了我将在不同应用程序中使用的各种函数。我希望它生成对库用户可见的日志语句,即,如果我正在构建一个应用程序并且我正在使用库,我希望库生成对我可见的日志语句。我该怎么做?由于日志文件将由应用程序的开发人员配置,我的库将如何知道如何记录?
如果您正在开发一个库,其他人将包含在他们的应用程序中,则应使用日志记录外观。否则,除了库用户为其应用程序选择的框架之外,还会强制库的用户配置并包括您选择的日志记录框架。
例如,如果您使用log4j,但使用您的库的开发人员使用logback,他必须包含log4j配置文件和log4j jar(或采取其他措施)才能使您的库满意。
日志记录立面解决了这个问题(来自Apache Commons Logging):
在编写库时,记录信息非常有用。但是,有许多日志记录实现,并且库不能将特定实现的使用强加给该库所属的整个应用程序。
日志记录包是不同日志记录实现之间的超薄桥梁。使用共享资源日志记录 API 的库可以在运行时与任何日志记录实现一起使用。Commons-logging支持许多流行的日志记录实现,为其他人编写适配器是一项相当简单的任务。
或者来自SLF4J的推理:
Java 或 (SLF4J) 的简单日志记录外观可用作各种日志记录框架的简单外观或抽象,例如.java util.logging、log4j 和 logback,允许最终用户在部署时插入所需的日志记录框架。
伐木立面的候选者是:
这方面的标准解决方案是:
所有这些都将允许您通过配置来配置日志文件位置。