如何在构造函数中通过依赖注入应用logger而没有框架

Jas*_*Jas 2 java oop

我正在做依赖注入没有框架(没有spring/guice)只是简单的java(我需要).我的问题是关于伐木工的记录器怎么样?我经常将它实例化

private static logger = Logger.getLogger(myclass); 
Run Code Online (Sandbox Code Playgroud)

但是这不是依赖注入,我应该将记录器传递给每个ctor吗?这看起来很奇怪...那么如何处理记录器和依赖注入呢?

PS我喜欢DI与ctor而不是setter这样我知道我的课程需要什么.

谢谢

ass*_*ias 7

一种解决方案是使用外观框架,例如slf4j.什么Logger.getLogger(...),然后做实际上是获取日志库,并使用它.更改日志库是一个简单的配置问题.

Java或(SLF4J)的简单日志外观用作各种日志框架的简单外观或抽象,例如java.util.logging,log4j和logback,允许最终用户在部署时插入所需的日志框架.

因此它与使用DI非常相似,但在这种情况下可能更合适.