문서 메뉴
문서 홈
/ / /
Java 동기화 드라이버
/

로깅

이 페이지의 내용

  • 개요
  • 로거(Logger) 설정
  • 배경
  • 예 - 설정
  • 로거 구성
  • 예제 - 구성
  • 로거(Logger) 이름
  • 예제 - 이름

이 가이드에서는 MongoDB Java 드라이버에서 로거(logger)를 설정하고 구성하는 방법에 대해 알아보겠습니다.

다음 항목을 수행하는 방법을 배웁니다:

  • SLF4J(Simple Logging Facade For Java)를 사용한 로거 설정

  • 로거의 로그 수준 구성

이 가이드에서는 드라이버에서 이벤트를 기록하는 방법을 보여 줍니다. 코드에서 드라이버의 활동에 대한 정보를 사용하는 방법을 알아보려면모니터링에대한 가이드를 읽어보세요.

이 섹션에서는 로거를 설정하려면 필요한 종속성에 대한 배경 정보를 제공하고 로거 설정 예시를 제공합니다.

MongoDB Java 드라이버는 SLF J(Simple Logging Facade For4Java)를 사용합니다. SLF4J를 사용하면 배포 시 원하는 로깅 프레임워크를 지정할 수 있습니다. SLF4J, 에 대한자세한 내용은 SLF4J 설명서를 참조하세요.

로거 설정은 선택 사항입니다. 애플리케이션을 시작하면 MongoDB Java 드라이버는 클래스 경로에서 slf4j-api 아티팩트를 찾습니다. 드라이버가 slf4j-api 아티팩트를 찾을 수 없는 경우 드라이버는 java.util.logging를 사용하여 다음 경고를 기록하고 모든 추가 로깅을 비활성화합니다.

WARNING: SLF4J not found on the classpath. Logging is disabled for the 'org.mongodb.driver' component

로거를 설정하려면 프로젝트에 다음을 포함해야 합니다.

  • slf4j-api 아티팩트

  • 로깅 프레임워크

  • 바인딩

참고

가장 많이 사용되는 로깅 프레임워크의 경우 slf4j-api와 로깅 프레임워크를 종속성으로 나열하는 단일 바인딩 아티팩트가 있는 경우가 많습니다. 이는 프로젝트의 종속성 목록에 하나의 아티팩트를 추가하여 로거를 설정할 수 있음을 의미합니다. 아래 예제에서 이를 확인할 수 있습니다.

결합은 slf4j-api 아티팩트를 로깅 프레임워크와 연결하는 스니펫입니다. 다음 예시는 가장 많이 사용되는 두 가지 로깅 프레임워크인 Log4j2와 Logback에 slf4j-api 아티팩트를 바인딩하는 방법을 보여 줍니다.

본 예제는 로거를 설정하는 방법을 설명합니다. 프로젝트에서 사용하려는 로깅 프레임워크에 해당하는 탭을 클릭하세요.

종속성 버전

나열된 다음 버전은 공식적인 정보가 아니며 설명을 위한 것입니다. 확실한 최신 버전 정보를 확인하려면 SLF4J 및 선택한 로깅 프레임워크에 대한 공식 문서를 확인하세요.

로거를 구성하려면 SLF4J에 바인딩된 로깅 프레임워크의 구성 시스템을 사용해야 합니다.

다음 예제에서는 로깅 프레임워크의 구성 시스템을 사용하여 로거의 로그 수준을 설정하는 방법을 설명합니다.

로거의 로그 수준은 로거가 메시지를 출력하기 위한 메시지의 긴급성 정도의 하한을 지정합니다.

이 예시에서는 로거의 로그 수준을 INFO로 구성하는 방법을 보여줍니다. 프로젝트에서 사용 중인 로깅 프레임워크에 해당하는 탭을 선택합니다.

로거는 로거 이름을 사용하여 다양한 로깅 이벤트를 구성하는 데 도움을 줍니다. 로거 이름은 계층 구조를 형성하는 문자열입니다. 이름 뒤의 "."가 다른 로거 이름의 접두사인 경우 로거는 다른 로거의 조상입니다. 예를 들어, "grandparent""grandparent.parent.child"의 조상인 "grandparent.parent"의 조상입니다.

구체적인 예를 들어, 코드에서 로거 계층 구조는 다음과 같습니다.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
Logger logger_parent = LoggerFactory.getLogger("parent");
Logger logger_child = LoggerFactory.getLogger("parent.child");

로거는 기존 로거의 속성을 상속받으며 속성을 자체적으로 정의할 수 있습니다. 이는 Java의 클래스 상속과 유사하다고 생각하면 됩니다.

MongoDB Java 드라이버는 드라이버에서 다양한 로깅 이벤트를 구성하기 위해 다음과 같은 로거 이름을 정의합니다. 다음은 드라이버에 정의된 로거 이름과 해당하는 로깅 이벤트입니다.

  • org.mongodb.driver.authenticator : 인증

  • org.mongodb.driver.client : MongoClient 인스턴스와 관련된 이벤트

  • org.mongodb.driver.cluster : MongoDB deployment 모니터링

  • org.mongodb.driver.connection : 연결 및 연결 풀

  • org.mongodb.driver.connection.tls : TLS/SSL

  • org.mongodb.driver.operation : 자동 재시도와 관련된 로깅을 포함한 작업

  • org.mongodb.driver.protocol : MongoDB deployment로 전송된 명령 및 MongoDB deployment에서 수신한 응답

  • org.mongodb.driver.uri : 연결 문자열 구문 분석

  • org.mongodb.driver.management : JMX(Java Management Extensions)

이 예에서는 특정 드라이버 로거의 로그 수준을 변경하는 방법을 보여 줍니다. 루트 로거를 OFF로 설정하고 org.mongodb.driver.connection 로거를 INFO로 설정합니다. 이렇게 하면 애플리케이션이 MongoDB 인스턴스 연결과 관련된 메시지만 기록합니다.

프로젝트에서 사용 중인 로깅 프레임워크에 해당하는 탭을 선택하세요.

← 데이터 정렬.