[java] Java 로깅 프레임 워크의 마커는 무엇이며이를 사용하는 이유는 무엇입니까?
처음 읽을 때 마커에 대해 들었습니다.
Logger 객체에 대해 사용 가능한 메서드를 확인 합니다.
- http://www.slf4j.org/api/org/slf4j/Logger.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html
발견 된 인터페이스 :
- http://www.slf4j.org/api/org/slf4j/Marker.html
- http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html
더 자세한 정보 :
하지만 여전히 혼란 스러워요 … 왜 그것들을 사용 하는지 묻지 않습니다 . 그래서 이것은 다음의 중복이 아닙니다 :
UPDATE 마커를 사용할 때 XML 또는 구성을 수행하는 대신 사용자 정의 Java 코드를 작성해야하는 것으로 보입니다. .property 파일 .
업데이트 2 에서 http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator
Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
"This is a serious an error requiring the admin's attention",
new Exception("Just testing"));
답변
이것은 ” SLF4J / Logback에서 마커를 사용하기위한 모범 사례 “라는 질문에 대한 제 답변 입니다.
마커를 사용하여 단일 로그 문 을 색칠 하거나 표시 할 수 있습니다 . 이러한 색상, 즉 마커로 수행하는 작업은 전적으로 귀하에게 달려 있습니다. 그러나 마커 사용에는 두 가지 패턴이 일반적으로 보입니다.
-
트리거링 : 일부 어 펜더는 특정 마커가있는 경우 작업을 수행하도록 지시 할 수 있습니다. 예를 들어, 로그 수준에 관계없이
SMTPAppender
로깅 이벤트가NOTIFY_ADMIN
마커 로 표시 될 때마다 이메일을 보내도록 구성 할 수 있습니다 . 로그 백 문서에서 마커 기반 트리거 를 참조하세요 . 트리거를 위해 로그 수준과 마커를 결합 할 수도 있습니다. -
필터링 : 마커는 중요한 특정 로그 문을 돋보이게 만드는 데 매우 유용합니다. 예를 들어 “DB”색상으로 모든 지속성 관련 로그 (다양한 여러 클래스 파일)에 색상을 지정 / 표시 할 수 있습니다. 그런 다음 “DB”를 필터링 할 수 있습니다. DB로 표시된 로그 문을 제외하고 로깅을 비활성화합니다. 자세한 내용은 로그 백 문서의 필터 에 대한 장 을 참조하십시오 (MarkerFilter 검색). 마커에 대한 필터링은 로그 백뿐만 아니라 로그 분석 도구로도 수행 할 수 있습니다.
마커가 출현하기 전에 유사한 동작을 달성하기 위해 1) 사용자 지정 수준 사용 2) 수정 된 로거 이름 사용 옵션이있었습니다. SLF4J API는 현재 사용자 지정 수준을 지원하지 않습니다. 옵션 2의 경우, 하나 또는 두 개의 로거를 수정해야하는 경우 로거 이름 접미사 (또는 접두사)를 사용할 수 있습니다. 관련 구성 파일을 관리 할 수 없게되므로 3 개 이상의 로거가 “하위 분류”되어야하는 즉시 접근 방식이 비실용적이됩니다.
하나의 마커가 이미 매우 유용 할 수 있지만, SLF4J의 다음 버전, 즉 버전 2.0은 로그 문당 여러 마커를 허용합니다.