【发布时间】:2012-10-16 07:13:27
【问题描述】:
粗略检查后,似乎 SLF4J 和 Guice(嗯,实际上是任何 DI 框架)是一种相互冲突的哲学。 SLF4J 采用了“嘿,直到运行时我们才会知道要绑定到哪些类,这没关系。”另一方面,Guice 似乎在说“嘿,我们需要在编译时确切知道我们要绑定到哪些类。"。
所以我问:是否可以使用 Guice/Spring/任何 DI 框架来配置/注入 SLF4J 绑定?
关键在于 Java ClassLoader 是真正在运行时使用适当的 Logger/LoggerFactory/等“注入”SLF4J。对象,所以我不知道如何注入这些 ClassLoader 以便它们返回我在运行时想要的 org.slf4j.impl.Logger:
我问是因为我喜欢 SLF4J 和针对 API 进行日志记录的好处,但也喜欢 DI 的好处。有没有办法使这项工作?提前致谢!
【问题讨论】:
-
你到底想做什么?您是否尝试使用 Guice 注入
Logger?注入LoggerFactory?将LoggerFactory绑定到基于 Guice 配置的特定 API 实现? (我之前没有使用过 SLF4J,但据我所知,这三个都是可行的。)
标签: java spring dependency-injection guice slf4j