Java 로깅 프레임 워크의 마커는 무엇이며이를 사용하는 이유는 무엇입니까?


110

처음 읽을 때 마커에 대해 들었습니다.

http://slf4j.org/faq.html

Logger 객체에 대해 사용 가능한 메서드를 확인 합니다.

발견 된 인터페이스 :

더 자세한 정보 :

하지만 여전히 혼란 스러워요 ... 그것들을 사용 하는지 묻지 않습니다 . 그래서 이것은 다음의 중복이 아닙니다 :

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에서 제공하는 마커 API를 사용해야합니다. 이것이 "사용자 지정 Java 코드"의 의미입니까?
Ceki 2013 년

@Ceki은 사용하는 것 같다 Logger.warn (마커, MSG하는) 당신이 필터에 대한 사용자 정의 클래스를 썼다 때까지 당신에게 어떤 혜택을 제공하고이를 등록하지 않았습니다 ...의 일반 구문 logback.xml가 함께 작업에 특별한 능력이없는 마커 단지 ( % marker로 인쇄 )
gavenkoa

1
logback.qos.ch/manual/appenders.html#OnMarkerEvaluator 에있는 "특별한"항목은 무엇 입니까?
Ceki

@Ceki 포인트 주셔서 감사합니다! 마커를 사용할 수있는 곳은 한 곳뿐입니까?
gavenkoa

1
@Ceki 이제 Elasticsearch를 사용하고 있으므로 특별 이벤트를 표시하는 방법입니다. 재사용을 위해 사전 정의 된 마커를 전용 클래스에 보관합니다. grep텍스트 로그를 통해 사용 하는 것은 분명하지 않았습니다 .
gavenkoa

답변:


117

이것은 " SLF4J / Logback에서 마커를 사용하기위한 모범 사례 "라는 질문에 대한 제 답변 입니다.

마커를 사용하여 단일 로그 문 을 색칠 하거나 표시 할 수 있습니다 . 이러한 색상, 즉 마커로 수행하는 작업은 전적으로 귀하에게 달려 있습니다. 그러나 마커 사용에는 두 가지 패턴이 일반적으로 보입니다.

  1. 트리거링 : 일부 어 펜더는 특정 마커가있는 경우 작업을 수행하도록 지시 할 수 있습니다. 예를 들어, 로그 수준에 관계없이 SMTPAppender로깅 이벤트가 NOTIFY_ADMIN마커 로 표시 될 때마다 이메일을 보내도록 구성 할 수 있습니다 . 로그 백 문서에서 마커 기반 트리거 를 참조하세요 . 트리거를 위해 로그 수준과 마커를 결합 할 수도 있습니다.

  2. 필터링 : 마커는 중요한 특정 로그 문을 돋보이게 만드는 데 매우 유용합니다. 예를 들어 "DB"색상으로 모든 지속성 관련 로그 (다양한 여러 클래스 파일)에 색상을 지정 / 표시 할 수 있습니다. 그런 다음 "DB"를 필터링 할 수 있습니다. DB로 표시된 로그 문을 제외하고 로깅을 비활성화합니다. 자세한 내용은 로그 백 문서의 필터 에 대한 을 참조하십시오 (MarkerFilter 검색). 마커에 대한 필터링은 로그 백뿐만 아니라 로그 분석 도구로도 수행 할 수 있습니다.

마커가 출현하기 전에 유사한 동작을 달성하기 위해 1) 사용자 지정 수준 사용 2) 수정 된 로거 이름 사용 옵션이있었습니다. SLF4J API는 현재 사용자 지정 수준을 지원하지 않습니다. 옵션 2의 경우, 하나 또는 두 개의 로거를 수정해야하는 경우 로거 이름 접미사 (또는 접두사)를 사용할 수 있습니다. 관련 구성 파일을 관리 할 수 ​​없게되므로 3 개 이상의 로거가 "하위 분류"되어야하는 즉시 접근 방식이 비실용적이됩니다.

하나의 마커가 이미 매우 유용 할 수 있지만, SLF4J의 다음 버전, 즉 버전 2.0은 로그 문당 여러 마커를 허용합니다.


1
또한 사용할 수 있습니다 SiftingAppender discrimnator에 대한 stackoverflow.com/a/30552012/1012497
nikli
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.