经过粗略的检查,似乎 SLF4J 和 Guice(嗯,任何 DI 框架,真的)是一种相互冲突的哲学。SLF4J 采用这种方法“嘿,直到运行时我们才会知道要绑定到哪些类,这没关系。 ”另一方面,Guice 似乎在说“嘿,我们需要在编译时知道究竟我们要绑定哪些类。 ”。
所以我问:是否可以使用 Guice/Spring/任何 DI 框架来配置/注入 SLF4J 绑定?
更重要的是,JavaClassLoader
是在运行时使用适当的 Logger/LoggerFactory/etc 真正“注入”SLF4J。对象,所以我不知道如何注入这些 ClassLoaders 以便它们org.slf4j.impl.Logger
在运行时返回我想要的:
我问是因为我喜欢 SLF4J 和针对 API 进行日志记录的好处,但也喜欢 DI 的好处。有没有办法使这项工作?提前致谢!