我有一个小的实用程序库,其中包含一些经过完全单元测试的实用方法。目前,我的库没有外部依赖。我正在考虑将记录添加到我的类中,这可能对调试有用。但这意味着将日志库与我的项目捆绑在一起。
我的问题是:我应该保持我的图书馆依赖免费吗?这样做有什么好处吗?
答案 0 :(得分:5)
我会添加一个可用于抽象日志记录的日志记录界面。然后允许用户通过此界面添加日志记录。您也应该使用此接口,并且应该提供内置在库中的“NullLogger”,如果不需要其他日志记录,将使用该“NullLogger”。
通过要求用户配置新的NullLogger,只需通过配置文件或运行时发现,就可以轻松不使用NullLogger。
答案 1 :(得分:1)
这样做有很多好处,尤其是在大多数操作系统上运行的能力。
保持库非常依赖的一种方法是在使用之前要求它进行初始化。然后你会在your_lib_init(); function接受一个指向后端记录的函数指针。这意味着,可以为可能运行的任何平台重写后端。
还要弄清楚,如果你想要一个完全没有所有库依赖项的库,或者一个依赖于标准类路径的库。如果它是纯Java,它将在J2ME,Android,本地编译的Java上运行GCJ而不是。如果它使用类路径,它将在所有类路径实现中移植,实际上在OpenJDK运行的任何地方。
答案 2 :(得分:1)
使用Java Logging。它是JRE / JDK的一部分,因此不需要外部库。
查看examples。
答案 3 :(得分:0)
临:
缺点:
PS:如果您想支持日志记录,请在代码中添加slf4j;这是一个30KiB API,允许您的代码用户使用任何日志框架。 不使用commons-logging。