Получить манекен slf4j? - PullRequest
       25

Получить манекен slf4j?

8 голосов
/ 22 марта 2011

Могу ли я получить фиктивный логгер от 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 в последней строке, если не был установлен регистратор.

1 Ответ

15 голосов
/ 22 марта 2011

Использование NOPLogger:

return this.logger == null ? NOPLogger.NOP_LOGGER : this.logger; 
...