보통 아래와 같이 무의식적으로 logger를 선언한다.
private static final Logger logger = LoggerFactory.getLogger(ThisClass.class);
스택오버플로우를 보면,
- private: 다른 클래스에서 가로채 사용하지 못하도록
- static: 인스턴스당 하나만 필요하므로, 또한 직렬화를 피하기 위해
- final: 변경될 일이 없으므로
라고 되어있는데,
영어라서 자세한 이유는 모르겠지만, 여러가지 이유로 static은 제외할 것을 권장한다고 한다.
따라서 아래와 같이 선언하면 될 것 같다.
private final Logger logger = LoggerFactory.getLogger(getClass());
참고:
https://stackoverflow.com/questions/6653520/why-do-we-declare-loggers-static-final
'Dev- > Java' 카테고리의 다른 글
자바 논리연산자 &, |와 &&, ||의 차이 (0) | 2019.04.14 |
---|---|
얕은 복사 (0) | 2019.03.06 |
싱글톤 객체 성능 향상 --> LazyHolder 사용 (0) | 2019.02.28 |
DB에 저장된 DATE, DATETIME 타입의 시간부분이 나오지 않을 때.. (TimeStamp) (0) | 2018.09.16 |
@SuppressWarning란? (0) | 2018.09.07 |