Logging Interface

에픽 온라인 서비스 SDK의 로그 메시지를 수신하는 인터페이스입니다.

2 분 소요

로깅 인터페이스(Logging Interface) 는 개발 도중 및 제품 출시 후 기술 문제 진단에 유용한 에픽 온라인 서비스 (Epic Online Services, EOS) SDK의 출력에 액세스할 권한을 개발자에게 제공합니다. 다른 EOS SDK 인터페이스와 달리 로깅 인터페이스는 원격 머신과 커뮤니케이션하지 않으며 핸들을 필요로 하지 않습니다.

로그 데이터 수신하기

EOS SDK에서 로그 출력을 수신하려면 콜백 함수(EOS_LogMessageFunc 타입)를 EOS_Logging_SetCallback 함수에 전달하여 등록합니다. 다른 인터페이스가 로그 출력을 생성할 때마다 함수는 관련 데이터가 포함된 EOS_LogMessage 데이터 구조체를 수신하게 됩니다. EOS는 이 데이터의 메모리를 관리하며 콜백 함수 종료 시 언제든지 메모리를 삭제할 수 있습니다. 그러므로 콜백 함수의 수명이 지난 이후에 보관할 정보는 직접 사본을 만들어야 합니다.

로그 데이터 필터링하기

로깅 인터페이스는 필요한 정보에 쉽고 빠르게 집중할 수 있는 내장 필터링 시스템을 지원합니다. EOS가 생성한 모든 로그에는 어떤 서브시스템 또는 인터페이스에 의해 생성됐는지 나타내는 카테고리가 있으며, 로그의 전반적인 중요성을 나타내는 '상세도' 레벨이 있습니다. 원하는 카테고리 또는 모든 카테고리의 메시지를 필터링하여 특정 상세도 레벨만 콜백 함수를 트리거하게 할 수 있습니다. 그렇게 하려면 EOS_Logging_SetLogLevel 을 원하는 카테고리(EOS_ELogCategory 사용) 및 상세도 레벨(EOS_ELogLevel 사용)과 함께 호출합니다. 모든 카테고리의 레벨을 한 번에 설정한 다음 하나 이상의 카테고리를 완전히 필터링할 수도 있습니다. 다음은 몇 가지 예시를 보여주는 코드 스니펫입니다.

// 모든 카테고리를 경고 레벨로 설정합니다. 적어도 경고만큼 중요하지 않은 것은 모두 무시합니다.
EOS_Logging_SetLogLevel(EOS_LC_ALL_CATEGORIES, EOS_LOG_Warning);
// 친구 인터페이스는 조금 더 제한합니다. 경고가 아닌 오류 레벨 이상인 것만 필요합니다.
EOS_Logging_SetLogLevel(EOS_LC_Friends, EOS_LOG_Error);
// Ecom 인터페이스의 모든 것을 보고합니다. 현재 디버깅 중인 것일 수도 있으므로 확인 가능한 로그 정보가 모두 필요합니다.
EOS_Logging_SetLogLevel(EOS_LC_Ecom, EOS_LOG_VeryVerbose);
// 로비 인터페이스의 로그 출력은 필요하지 않으므로 완전히 끕니다.
EOS_Logging_SetLogLevel(EOS_LC_Lobby, EOS_LOG_Off);

기본적으로 모든 카테고리는 전체 로그 데이터를 콜백 함수에 보고합니다.