프로그래밍 방식으로 java.util.logging.Logger
을 구성하고 싶습니다. Oracle Docs에 따르면, 가능합니다.프로그래밍 방식으로 로거 구성
public static void main(String[] args) {
Logger logger = Logger.getLogger("org.acme.project");
logger.setLevel(Level.SEVERE);
logger = null;
System.gc();
logger = Logger.getLogger("org.acme.project");
logger.warning("You shouldn't see this warning!");
logger.severe("But this error!");
}
코드를 실행하면 두 메시지가 표시됩니다
그러나이 예는 뭔가 잘못 여기 보여줍니다. 그러나logger = null;
또는
System.gc();
을 제거하면 가비지 수집기가
Logger.getLogger(String)
을 떠나는 구성 된 로거를 제거하고 새로운 (기본값) 것을 생성한다는 것을 증명하는 정확한 두 번째 것을 볼 수 있습니다.
"해결"하려면 특정 로거에 대한 참조를 보관할 수는 있지만 좋은 생각이라고 생각하지 않습니다.
그럼 프로그래밍 방식으로 로거를 정의하려면 어떻게해야합니까?
나는 왜 OP의 문제를 겪어 본 적이 없는지 깨닫기 위해 잠시 나갔다. 이것은 확실히 당신이 사용해야하는 관용구입니다. – Qix