我正在编写一个库,并使用 sfl4j 来处理日志记录。
我认为只要每个机构都可以提供自己的实现,那么我的应用程序提供的日志将得到正确处理,这是个好主意。
但我不知道是否必须提供实现作为传递依赖项。
示例:
如果我只提供:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
我的lib的用户可以选择实现,但是如果他只是添加我的lib而不读取配置,这是行不通的
否则,如果我提供:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
我的库在添加依赖项时就能正常工作,但如果用户想使用其他 slf4j,他将不得不排除我的库。
你对此有何看法?
You never提供日志实现。客户端应用程序必须这样做。否则这将违反关注点分离。不要对未知的客户做任何假设。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)