로거를 정적으로 선언해야합니까? 일반적으로 로거에 대한 두 가지 유형의 선언을 보았습니다.
보호 된 로그 로그 = new Log4JLogger (aClass.class);
또는
개인 정적 로그 로그 = new Log4JLogger (aClass.class);
어느 것을 사용해야합니까? 둘 다의 장단점은 무엇입니까?
static
클래스 당 하나의 참조입니다. 비정 적은 인스턴스 당 하나의 참조입니다 (+ 초기화). 따라서 경우에 따라 수많은 인스턴스가있는 경우 후자는 메모리에 상당한 영향을 미칩니다. 빈번한 물체 에서 정전기 방지를 사용하지 마십시오 . 나는 항상 정적 버전을 사용합니다. (해야하는 대문자 LOG
)
private static final Log log
소문자 여야합니다. 로거는 상수가 아니며 로거는 정적 최종 객체 (변경 될 수 있음)입니다. 개인적으로 저는 항상 logger
.