买个假的slf4j记录器?
我可以从slf4j获得虚拟记录器吗?(想想空对象设计模式。)如果是的话,有没有人可以举出一个例子?或者,如果我想这样做,我是否必须实现一个自定义记录器?
我希望编写一个类似
的函数private Logger logger;
static Logger nullLogger;
static {
nullLogger = getMeADummyLogger();
}
public Logger getLogger() {
return this.logger == null ? nullLogger : this.logger;
}
// then, elsewhere:
this.getLogger().info("something just happened");
如果未设置记录器,则在最后一行上不会得到NullPointerException
。
解决方案
使用NOPLogger
:
return this.logger == null ? NOPLogger.NOP_LOGGER : this.logger;
相关文章