브라우저 및 모바일 오류 로그 추적

개요

Error Tracking은 브라우저 및 모바일 Datadog Log SDK에서 수집된 오류를 처리합니다. 스택 트레이스가 포함된 오류가 수집될 때마다 Error Tracking은 이를 처리하여 유사한 오류들을 묶어 놓은 _이슈_로 그룹화합니다.

로그 오류의 필수 속성은 로그 error.stack의 스택 트레이스(stack trace)입니다. Datadog으로 스택 트레이스(stack trace)를 전송했으나 error.stack에 없는 경우, 일반 로그 리매퍼(remapper)를 설정하여 스택 트레이스(stack trace)를 Datadog의 정확한 속성으로 리매핑할 수 있습니다.

오류 추적에 충돌 보고서가 표시됩니다.

설정

아직 Datadog Browser Logs SDK를 설정하지 않은 경우 앱 내 설정 지침을 따르거나 Browser Logs 설정 설명서를 참고하세요.

  1. 최신 버전의 로그 브라우저 SDK을 다운로드하세요. 오류 추적을 사용하려면 v4.36.0 이상이 필요합니다.

  2. SDK 초기화 시 애플리케이션의 version, env, service를 설정합니다. 예를 들어 NPM의 경우는 다음과 같습니다.

    import { datadogLogs } from '@datadog/browser-logs'
    
    datadogLogs.init({
      clientToken: '<DATADOG_CLIENT_TOKEN>',
      site: '<DATADOG_SITE>',
      service: '<MY_SERVICE>',
      env: '<MY_ENV>',
      forwardErrorsToLogs: true,
      sessionSampleRate: 100,
    })
    
  3. 탐지된 예외를 직접 로깅하려면 옵션 오류 파라미터를 사용할 수 있습니다.

    try {
      throw new Error('wrong behavior');
    } catch(err) {
      datadogLogs.logger.error("an error occurred", {usr: {id: 123}}, err);
    }
    

참고: 오류 추적은 Error의 인스턴스인 오류만 고려합니다.

아직 Datadog Android Logs SDK를 설정하지 않은 경우 앱 내 설정 지침을 따르거나 Android Logs 설정 설명서를 참고하세요.

  1. 로그용 Datadog Android SDK 최신 버전을 다운로드합니다.

  2. SDK 초기화 시 애플리케이션의 version, env, service을 설정합니다.

  3. 탐지된 예외를 직접 로깅하려면 옵션으로 다음을 사용할 수도 있습니다.

    try {
      doSomething()
    } catch (e: IOException) {
      logger.e("an exception occurred", e)
    }
    

아직 Datadog iOS Logs SDK를 설정하지 않은 경우 앱 내 설정 지침을 따르거나 iOS Logs 설정 설명서를 참고하세요.

  1. 로그용 Datadog iOS SDK 최신 버전을 다운로드합니다.

  2. SDK 초기화 시 애플리케이션의 version, env, service을 설정합니다.

  3. 탐지된 예외를 직접 로깅하려면 옵션으로 다음을 사용할 수도 있습니다.

    do {
      // ...
    } catch {
      logger.error("an exception occurred", error)
    }
    

아직 Datadog Kotlin Multiplatform Logs SDK를 설정하지 않은 경우 앱 내 설정 지침을 따르거나 Kotlin Multiplatform Logs 설정 설명서를 참고하세요.

  1. Datadog Kotlin Multiplatform SDK for Logs의 최신 버전을 다운로드하세요.

  2. SDK 초기화 시 애플리케이션의 version, env, service를 구성하세요.

  3. 탐지된 예외를 직접 로깅하려면 옵션으로 다음을 사용할 수도 있습니다.

    try {
      doSomething()
    } catch (e: IOException) {
      logger.error("an exception occurred", e)
    }
    

참고 자료