본문 바로가기
WIKI 기술 지식 베이스

Unity 로그 수집 (Log Collection)

원문 보기 위키 갱신

Datadog의 Unity 패키지로 Unity 애플리케이션에서 Datadog로 로그를 보내고 다음 기능을 활용해 보세요:

  • 로그를 기본적으로 JSON 형식으로 Datadog에 보내요.
  • 보내는 각 로그에 기본 속성을 사용하고 사용자 지정 속성을 추가해요.
  • 실제 클라이언트 IP 주소와 User-Agent를 기록해요.
  • 자동 대량 게시(bulk posts)로 최적화된 네트워크 사용을 활용해요.

출처: 문서

본문

설정 (Setup)

로그용 Datadog Unity SDK를 초기화하려면 설정 문서를 참고하세요.

Datadog Unity SDK를 설정한 후에는 SDK의 DefaultLogger를 사용해 Datadog로 로그를 보낼 수 있어요.

var logger = DatadogSdk.Instance.DefaultLogger;

logger.Debug("A debug message.");
logger.Info("Some relevant information?");
logger.Warn("An important warning…");
logger.Error("An error was met!");

"Forward Unity Logs" 옵션을 설정하면 Unity의 Debug.Log* 메서드로 보내는 로그가 자동으로 DatadogSdk.Instance.DefaultLogger로 전송돼요.

CreateLogger 메서드를 사용해 서로 다른 서비스와 이름을 가진 추가 로거를 만들 수도 있어요:

var loggingOptions = new DatadogLoggingOptions()
{
    Service = "com.example.custom_service",
    Name = "Additional logger",
};
var logger = DatadogSdk.Instance.CreateLogger(loggingOptions);

logger.Info('Info from my additional logger.');

태그 관리하기 (Manage tags)

로거에 설정한 태그는 각 로거에 국한돼요 (로컬).

태그 추가하기 (Add tags)

DdLogger.AddTag 메서드를 사용해 특정 로거가 보내는 모든 로그에 태그를 추가하세요:

// This adds a "build_configuration:debug" tag
logger.AddTag("build_configuration", "debug")

태그 제거하기 (Remove tags)

DdLogger.RemoveTag 메서드를 사용해 특정 로거가 보내는 모든 로그에서 태그를 제거하세요:

// This removes any tag that starts with "build_configuration"
logger.RemoveTag("build_configuration")

자세한 내용은 태그 시작하기 문서를 참고하세요.

속성 관리하기 (Manage attributes)

로거에 설정한 속성은 각 로거에 국한돼요 (로컬).

기본 속성 (Default attributes)

기본적으로 로거가 보내는 모든 로그에 다음 속성이 추가돼요:

  • http.useragent와 여기서 추출된 device·OS 속성
  • network.client.ip와 여기서 추출된 지리 속성(country, city)
  • logger.version, Datadog SDK 버전
  • logger.thread_name, (main, background)
  • version, Info.plist 또는 application.manifest에서 추출한 클라이언트 앱 버전
  • environment, SDK를 초기화할 때 사용한 환경 이름

속성 추가하기 (Add attributes)

DatadogLogger.AddAttribute 메서드를 사용해 특정 로거가 보내는 모든 로그에 사용자 지정 속성을 추가하세요:

logger.AddAttribute("user-status", "unregistered")

value에는 JsonCovert.SerializeObject로 직렬화할 수 있는 대부분의 타입이 올 수 있어요.

속성 제거하기 (Remove attributes)

DdLogger.RemoveAttribute 메서드를 사용해 특정 로거가 보내는 모든 로그에서 사용자 지정 속성을 제거하세요:

// This removes the attribute "user-status" from all logs sent moving forward.
logger.RemoveAttribute("user-status")

더 알아보기 (Learn more)