Какой должна быть позиция логгера в классе? - PullRequest
0 голосов
/ 26 февраля 2019

Идет постоянная дискуссия с друзьями по поводу позиции регистратора.Согласно чистому коду static final атрибуты должны располагаться сверху класса.Мой друг настаивает на том, чтобы придерживаться того, что показано ниже:

public class SomeDummyClass {
    private static final String PREFIX = "xxx";
    private static final String SUFFIX = "yyy";
    private static final Logger LOG = LoggerFactory.getLogger(SomeDummyClass.class);
    // other implementations
}

Вот мое предложение:

public class SomeDummyClass {
    private static final Logger LOG = LoggerFactory.getLogger(SomeDummyClass.class);
    private static final String PREFIX = "xxx";
    private static final String SUFFIX = "yyy";
    // other implementations
}

Моя цель - сделать код более читабельным с первого взгляда.Я знаю, что нет никакого письменного правила, чтобы поставить определение log поверх всего, но я хочу услышать ваш опыт и идеи.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

У меня есть предпочтение объявлять переменные, которые являются общими для всех классов сверху, а затем для конкретных классов.Поэтому наличие LOG наверху помогает удобочитаемости, поскольку классы будут более стандартными.

0 голосов
/ 26 февраля 2019

Самый распространенный подход - чтобы он был на самой верхней линии.Кроме того, logger не является константой, это объект, который выполняет побочные эффекты (запись в журнал), поэтому его не следует использовать полностью.

public class SomeDummyClass {
    private static final Logger logger = LoggerFactory.getLogger(SomeDummyClass.class);

    private static final String PREFIX = "xxx";
    private static final String SUFFIX = "yyy";
    // other implementations
}

Все приведенные ниже примеры следуют зато же соглашение:

https://www.baeldung.com/slf4j-with-log4j2-logback

https://www.stubbornjava.com/posts/logging-in-java-with-slf4j-and-logback

https://www.mkyong.com/spring-mvc/spring-mvc-logback-slf4j-example/

https://www.javacodegeeks.com/2012/04/using-slf4j-with-logback-tutorial.html

Код очистки также советует вам как можно чаще следовать общим соглашениям, чтобы минимизировать количество времени и усилий, необходимых новому разработчику для понимания вашего кода и навигации по нему.Таким образом, в этом случае, учитывая, что глобальное соглашение состоит в том, чтобы поставить регистратор таким образом, я просто соблюдаю его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...