

카우치베이스 서버 는 복잡한 제품입니다. 대부분의 실질적인 소프트웨어, 특히 엔터프라이즈 제품과 마찬가지로 로깅을 통한 동작 모니터링이 중요합니다.
저는 최근에 Couchbase Multi-Cluster Aware Java 클라이언트를 사용하여 작은 샘플 애플리케이션을 작성했습니다. 이 클라이언트는 Couchbase 노드의 장애 조치를 처리할 수 있으며, 겉으로 보기에는 부하를 완전히 다른 클러스터 (아주 멋진 기능입니다). (이러한 기능에 대해 자세히 알아보고 라이브 데모를 보려면 "오라클에서 세계 최초의 참여 데이터베이스로 전환하는 방법"이라는 제목의 웨비나를 통해 확인하세요. 리소스 페이지)
로거 전환
카우치베이스 사용 SLF4J 로깅을 위한 후드 내부에 있습니다. SLF4J는 표준 Java를 비롯한 다양한 프레임워크를 자동으로 래핑하고 작업할 수 있습니다. java.util.logging 클래스, log4j및 로그백. 로그백은 로그4j를 대체하기 위해 작성되었으며, 세 가지 중 가장 강력하기 때문에 이를 사용하고 싶었습니다.
꽤 쉬운 것으로 밝혀졌습니다. maven의 경우, 다음 종속성을 여러분의 pom 파일을 가져옵니다. 이렇게 하면 SLF4J-API 를 하위 종속성으로 지정합니다.
|
1 2 3 4 5 6 |
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> |
이 기능을 추가하는 것만으로도 이전에는 표준 Java 로깅을 통해 출력을 받았는데, 이제는 로그백을 통해 로깅을 받습니다. 하지만 로깅은 정말 시끄러웠습니다. 특히 네트워크 연결과 관련된 문제를 집중적으로 분석하고 싶었지만 다른 출력에 정보가 묻히고 있었죠.
출력 조정하기
로그백의 멋진 기능 중 하나는 출력을 계층적으로 제어할 수 있다는 점입니다. 문서에서 이에 대해 읽었지만 좋은 예제를 찾지 못했습니다.
클래스 이름을 기반으로 로거를 생성한다고 가정할 때, 다음은 Couchbase 서버 로깅을 전반적으로 조정하고 특정 클래스에 대해서는 로깅을 해제하는 간단한 로그백 구성 파일입니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <root level="warn"> <appender-ref ref="STDOUT" /> </root> <logger level="off" name="com.couchbase.client.core.endpoint.Endpoint" /> <logger level="error" name="com.couchbase.client.core.env.CoreEnvironment" /> </configuration> |
마지막 두 개 logger 줄은 작동 중인 계층 구조를 보여줍니다. 첫 번째 줄은 기본값인 "경고"에서 "오류" 이상의 우선 순위로만 로깅하도록 Couchbase 코드의 모든 항목을 설정합니다. 이렇게 하면 엔드포인트 클래스 출력도 로깅하지 않습니다. 대신 두 번째 줄은 해당 클래스에 대해서만 로깅을 완전히 끕니다.
여기까지입니다. 프로젝트 사이트의 문서에서 로그백을 구성하는 방법에 대해 자세히 알아볼 수 있습니다. 이 구성 스니펫을 통해 로그백을 조정하는 데 좋은 출발점이 될 것입니다. 카우치베이스 서버 빠른 시작을 원한다면 Java 클라이언트 코드의 출력을 참조하세요.
포스트 스크립트
카우치베이스는 오픈 소스이며 무료로 체험해 볼 수 있습니다. 곧 출시될 기능의 미리 보기를 포함한 최신 버전을 다운로드하세요, 여기.
질문, 의견, 보고 싶은 주제 등이 있으면 트위터에서 저에게 연락해 주세요. 호드그릴리