UE_LOG & On-Screen Debug Message
언리얼 엔진에서 로깅을 통해 런타임 중 특정 시점에 이벤트, 함수 호출 및 변수 값을 순서대로 출력해 보기
UE_LOG

Output Log 위치
- 위치 UE 하단 왼쪽
혹은

- 창(Window) > 출력 로그(Output Log)로 이동하여 언리얼 에디터의 로그를 관찰할 수 있습니다.

- 단축키 (Shorcut): Alt + `

로그 매크로
UE_LOG의 기본 구조: UE_LOG(카테고리, 심각도, 출력할 메시지)
UE_LOG(LogTemp, Warning, TEXT("Hello World"));
- 첫 번째 입력 파라미터인 LogTemp는 DEFINE_LOG_CATEGORY 매크로에 제공된 그대로의 카테고리 이름입니다. 언리얼 엔진에서 이러한 카테고리는 CoreGlobals.h 에서 찾을 수 있습니다.

- 두 번째 입력 파라미터인 Warning 은 콘솔 및 로그 파일에 경고를 출력하는 데 사용되는 상세 레벨입니다. 다양한 상세 레벨을 구성하여 특정 로그에서 줄 바꿈을 허용하거나 로그 텍스트 컬러를 구성할 수 있습니다.

자체 로그 카테고리 정의 방법
자체 로그 카테고리를 정의하고 이를 C++ 코드 예시에 사용할 수 있습니다. 별도의 분류가 필요한 여러 파일이나 프레임워크가 예시에 포함된 경우 유용할 수 있습니다. 관련 헤더 파일에서 include 지시문 바로 아래에 다음을 추가합니다.
DECLARE_LOG_CATEGORY_EXTERN(<LOG_CATEGORY>, <VERBOSITY_LEVEL>, All);
관련 C++ 파일에서 include 지시문 바로 아래에 다음을 추가합니다.
DEFINE_LOG_CATEGORY(<LOG_CATEGORY>);
이제 C++ 파일 코드에서 이 카테고리를 다음과 같이 사용할 수 있습니다.
UE_LOG(<LOG_CATEGORY>, <VERBOSITY_LEVEL>, TEXT("My log string."));
- 세 번째 입력 파라미터인 Text는 C 언어 라이브러리 함수인 printf의 스타일로 표시된 문자열 리터럴 포맷입니다.
특정 데이터 타입 로깅하는 방법 예시
- FSting: UE_LOG(LogTemp, Warning, TEXT("An Actor's name is %s"), *ExampleActor->GetName());
- Bool: UE_LOG(LogTemp, Warning, TEXT("The boolean value is %s"), ( bExampleBool ? TEXT("true"): TEXT("false") ));
- Integer: UE_LOG(LogTemp, Warning, TEXT("The integer value is: %d"), ExampleInteger);
- Float: UE_LOG(LogTemp, Warning, TEXT("The float value is: %f"), ExampleFloat);
- FVector: UE_LOG(LogTemp, Warning, TEXT("The float value is: %f"), ExampleFloat);
- 여러 지정자: UE_LOG(LogTemp, Warning, TEXT("Current values are: vector %s, float %f, and integer %d"), *ExampleVector.ToString(), ExampleFloat, ExampleInteger);
화면 디버그 메시지
#include "Math/UnrealMathUtility.h" // FColor 사용 시 추가해야 합니다
AddOnScreenDebugMessage(key, TimeToDisplay, DisplayColor, DebugMessage)
if (GEngine)
{
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::White, TEXT("This is an Example on-screen debug message."));
}
- 첫 번째 입력 파라미터인 key는 고유한 인티저 키를 사용하여 동일한 메시지가 여러 번 추가되지 않도록 방지합니다.
- 두 번째 입력 파라미터인 TimeToDisplay는 플로트를 사용하여 메시지가 사라지기 전 메시지를 표시할 시간(초)을 지정합니다.
- 세 번째 입력 파라미터인 DisplayColor는 텍스트를 표시할 컬러를 취합니다.
- 네 번째 입력 파라미터인 DebugMessage는 표시할 메시지입니다. 로그와 비슷하게 화면 디버그 메시지에서 포맷 지정자 및 변수를 사용할 수 있습니다.

추천
UE_LOG Official Document: https://dev.epicgames.com/documentation/unreal-engine/logging-in-unreal-engine
Logging in Unreal Engine | Unreal Engine 5.7 Documentation | Epic Developer Community
Information on logging in Unreal Engine.
dev.epicgames.com
FColor 관련 Official Document: https://dev.epicgames.com/documentation/unreal-engine/API/Runtime/Core/FColor
FColor | Unreal Engine 5.7 Documentation | Epic Developer Community
[FColor](API\Runtime\Core\FColor) Stores a color with 8 bits of precision per channel.
dev.epicgames.com
[페이지] Unreal Engine | 언리얼 엔진
- Unreal Engine, 언리얼 엔진, UE, UE5, DevLog, C++, 게임 개발, Programming, 프로그래밍,