得到一个虚拟的slf4j记录器?

a C*_*CVn 8 java slf4j null-object-pattern

我可以从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");
Run Code Online (Sandbox Code Playgroud)

而没有得到NullPointerException,如果没有记录器已被设置在最后一行.

axt*_*avt 15

用途NOPLogger:

return this.logger == null ? NOPLogger.NOP_LOGGER : this.logger; 
Run Code Online (Sandbox Code Playgroud)