반응형
👨💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.
언리얼 엔진에서 UE_LOG 란 무엇이며, 어떻게 활용할 수 있는지 간략히 알아보았습니다.
질문 >
언리얼 엔진에서 UE_LOG 란 무엇이며, 어떻게 활용할 수 있나요?
답변 >
UE_LOG는 언리얼 엔진에서 로그(Log)를 출력하는 데 사용하는 매크로입니다. 이는 디버깅, 개발 도중 발생하는 상태를 추적하거나, 중요 정보를 출력하여 콘솔과 로그 파일에서 확인할 수 있도록 돕는 도구입니다. UE_LOG는 다양한 로그 카테고리와 심각도 레벨을 지원하여 개발자가 로그 메시지를 세부적으로 관리하고 분석할 수 있게 합니다.
UE_LOG의 주요 특징
- 로그 카테고리(Log Category):
- 로그 메시지를 그룹화하기 위한 태그입니다. 각 로그는 특정 카테고리에 속하며, 이를 통해 관련 메시지를 필터링하거나 정리할 수 있습니다.
- 카테고리는 DEFINE_LOG_CATEGORY 매크로를 사용해 정의합니다.
- 심각도 레벨(Severity Level):
- 로그 메시지의 중요도를 나타내는 레벨입니다. 엔진은 로그 레벨에 따라 출력 여부를 조정합니다.
- 주요 레벨:
- Log: 일반 정보.
- Warning: 경고 메시지.
- Error: 심각한 오류 메시지.
- 콘솔 및 로그 파일 출력:
- 로그는 언리얼 콘솔(Output Log), 디버그 창, 또는 로그 파일에 출력됩니다. 이를 통해 실행 중 발생하는 문제를 쉽게 파악할 수 있습니다.
UE_LOG 사용법
1. 로그 카테고리 정의
로그를 그룹화하려면 로그 카테고리를 정의해야 합니다.
// 헤더 파일에 로그 카테고리 선언
DECLARE_LOG_CATEGORY_EXTERN(MyLogCategory, Log, All);
// 소스 파일에 로그 카테고리 정의
DEFINE_LOG_CATEGORY(MyLogCategory);
2. 로그 메시지 출력
정의된 카테고리를 사용하여 로그 메시지를 출력합니다.
UE_LOG(MyLogCategory, Log, TEXT("This is a log message."));
UE_LOG(MyLogCategory, Warning, TEXT("This is a warning message."));
UE_LOG(MyLogCategory, Error, TEXT("This is an error message."));
- TEXT() 매크로는 유니코드 문자열을 보장하기 위해 사용됩니다.
- 출력 메시지는 변수와 결합하여 동적 데이터를 표시할 수도 있습니다.
int32 Value = 42;
UE_LOG(MyLogCategory, Log, TEXT("Value is: %d"), Value);
심각도 레벨 요약
레벨 | 설명 |
Log | 일반적인 정보 메시지입니다. |
Warning | 비정상적인 동작이나 잠재적 문제를 나타냅니다. |
Error | 심각한 오류를 나타냅니다. 게임 실행에 문제가 생기거나 프로그램의 불안정성이 예상됩니다. |
활용 예시
- 게임 로직 디버깅:
- 특정 이벤트가 발생했는지, 변수의 값이 예상대로 변경되었는지 추적할 때 사용됩니다.
void AMyCharacter::MoveForward(float Value)
{
if (Value == 0.0f)
{
UE_LOG(MyLogCategory, Warning, TEXT("MoveForward input is zero."));
}
else
{
UE_LOG(MyLogCategory, Log, TEXT("MoveForward input value: %f"), Value);
}
}
- 에러 처리 및 경고 표시:
- 예상치 못한 조건을 감지하여 오류 메시지를 출력하고 문제를 파악합니다.
if (!SomePointer)
{
UE_LOG(MyLogCategory, Error, TEXT("SomePointer is null! Check initialization."));
}
- AI 디버깅:
- AI의 상태를 추적하여 예상대로 동작하지 않을 경우 디버깅에 활용합니다.
UE_LOG(MyLogCategory, Log, TEXT("AI State: %s"), *AIState.ToString());
로그 출력 확인
- Output Log 창:
- 에디터에서 Window > Developer Tools > Output Log를 선택하면 모든 로그 메시지를 실시간으로 확인할 수 있습니다.
- 로그 파일 확인:
- 로그 메시지는 Saved/Logs 디렉토리의 .log 파일에 저장됩니다.
- 특정 시간 이후 발생한 로그를 파일에서 검토할 수 있습니다.
장점
- 디버깅 편의성: 코드를 일일이 수정하거나 중단점을 설정하지 않고도 상태를 실시간으로 확인 가능.
- 다양한 필터링 옵션: 로그 카테고리와 심각도 레벨을 사용해 메시지를 정리하고 분석.
- 유연성: 문자열, 변수, 포맷팅 데이터를 결합하여 다양한 정보를 출력.
결론
UE_LOG는 언리얼 엔진에서 디버깅과 문제 해결을 위한 필수 도구로, 게임 개발 중 발생하는 정보를 효율적으로 출력하고 관리할 수 있도록 돕습니다. 이를 통해 실시간으로 실행 상태를 추적하고 오류를 조기에 발견하여 개발 생산성을 크게 향상시킬 수 있습니다.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
🎬 유튜브 채널 🎬
🎬 치지직 채널 🎬
반응형