用于Java库的记录器

pw9qyyiw  于 2023-05-21  发布在  Java
关注(0)|答案(4)|浏览(130)

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

kyks70gy

kyks70gy1#

如果你正在开发一个,其他人会在他们的应用程序中包括你应该使用一个logging facade。否则,您将强制库的用户配置并包含您所选择的日志框架以及他们为应用程序选择的框架
例如,如果您使用log4j,但使用您的库的开发人员使用logback,他将不得不包含log4j配置文件和log4j jar(或使用other measures),以使您的库满意。
Logging Facades解决了这个问题(来自Apache Commons Logging):
在编写库时,记录信息非常有用。然而,有许多日志实现,并且库不能将特定的日志实现的使用强加给该库所属的整个应用程序。
Logging包是不同日志实现之间的超薄桥梁。使用commons-logging API的库可以在运行时与任何日志实现一起使用。Commons-logging支持许多流行的日志实现,为其他实现编写适配器是一项相当简单的任务。
关于SLF 4J:
Simple Logging Facade for Java或(SLF 4J)用作各种日志框架的简单facade或抽象,例如log4j和logback,允许最终用户在部署时插入所需的日志框架。
伐木立面的候选者有:

我个人推荐使用SLF4J(使用Logback)。

nhaq1z21

nhaq1z212#

标准溶液为:

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

t30tvxxf

t30tvxxf3#

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

ix0qys7i

ix0qys7i4#

从Java 9库开始,作者应该使用System#getLogger Facade,并让开发人员选择日志后端框架。
所有流行的Java日志框架都实现了新的Facade SPIService Provider

相关问题