Как переопределить реализацию интерфейса LOGGER по умолчанию - PullRequest
0 голосов
/ 15 октября 2018

Я использую окончательный Logger LOGGER = LoggerFactory.getLogger (clazz);чтобы получить объект LOGGER org.slf4j.Я сталкиваюсь с трудностями при переопределении любого реализованного по умолчанию метода этого класса.

Я пытаюсь переопределить нестатический метод конкретного класса.Допустим, класс MyLogger {Logger LOGGER = LoggerFactory.getLogger (clazz);LOGGER.debug («Некоторое сообщение»);} Теперь метод отладки - это нестатический метод, объявленный в классе LOGGER, для которого предусмотрена некоторая конкретная реализация.Проблема здесь в том, что я вижу много классов реализации, когда пытаюсь найти ссылки.Поэтому, чтобы переопределить метод отладки, что я должен сделать

Обновлен исходный класс следующим образом:

public class MyLogger implements Logger {

 private static final Logger LOGGER = LoggerFactory.getLogger(MyLogger.class);
 public static org.slf4j.Logger init(Class clazz) {
        final Logger loggerOut = LoggerFactory.getLogger(clazz);
        setContainerId();
        LOGGER.debug("Logger is initialized for [{}].", clazz.getName());
        return loggerOut;
    }


    public void debug(String msg, Object arg1)
    {
        LOGGER.debug("My message",arg1);
    }
}

Все еще не удалось получить результат.Пожалуйста, предложите, что мне здесь не хватает?

1 Ответ

0 голосов
/ 15 октября 2018

Статические методы не могут быть переопределены.Если вы видите здесь функции LoggerFactory в документации

...