1 minute read

개요


언리얼 엔진4(UE4)에서 로그를 출력 하는법 입니다.
가장 기본적이면서도 중요한 부분이니 착실하게 짚고 넘어가고자 합니다.

먼저 언리얼에서 로그를 출력하는건 유니티보다 다소 복잡하게 되어있습니다.
유니티에서는 아래와 같이 쉽게 출력할 수 있지만,

Debug.Log("로그 내용");
Debug.LogWarning("로그 내용");
Debug.LogError("로그 내용");


언리얼에서는 기본적으로 아래와 같이 UE_LOG를 사용해서 로그를 출력합니다.

UE_LOG(LogCategory, Verbosity, Format, ...);  

카테고리도 별도로 지정가능하며, 필요시 사용자가 별도로 로그 카테고리를 만들어서 출력하는것도 가능합니다.

또한 유니티와는 달리 로그를 출력 패널에서 뿐만 아니라 에디터 화면에서도 출력이 가능하다는점 입니다.(이외에도 블루프린트에서도 로그를 출력하는 방법도 있습니다.)

사용 방법


C++ 코드에서 사용


[미리 정의된 로그 카테고리 사용 예시]

UE_LOG(LogTemp, Warning, TEXT("This is a warning message. Value: %d"), 123);
UE_LOG(LogTemp, Error, TEXT("An error occurred! Location: %s"), *GetActorLocation().ToString()); // FVector 출력 시 * 필요
UE_LOG(LogTemp, Display, TEXT("Actor name: %s"), *GetName()); // FString 출력 시 * 필요


[사용자 정의 로그 카테고리 생성 예시]

// 헤더 파일 (.h)
DECLARE_LOG_CATEGORY_EXTERN(LogMyCategory, Log, All);

// 소스 파일 (.cpp)
DEFINE_LOG_CATEGORY(LogMyCategory);

// 사용
UE_LOG(LogMyCategory, Log, TEXT("This is a message from my custom category."));

[뷰포트에서 로그 출력]

void AMyActor::Tick(float DeltaTime)
{
  Super::Tick(DeltaTime);
  
  // 첫번째 매개변수는 이후 출력할 로그를 지울지 개행할지를 정합니다. 
  // -1은 개행, -1이 아닌 다른 숫자면 이전 로그를 지우고 이후 로그를 출력합니다.
  // 두번째 매개변수는 로그가 남아있을 시간
  // 세번째 매개변수는 로그 텍스트의 색상 입니다. 
  // 네번째 매개변수는 출력할 로그 내용 입니다. 
  
  GEngine->AddOnScreenDebugMessage(-1, 1.0f, FColor::Red, TEXT("This is a message from my custom category.")); 
  GEngine->AddOnScreenDebugMessage(1, 1.0f, FColor::Red, TEXT("This is a message from my custom category.")); 
}


[PrintString 함수 사용 (주로 블루프린트에서 사용)]

GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Yellow, TEXT("Hello from C++!"));


[GLog 객체 직접 사용 (고급)]

GLog->Logf(TEXT("This is a message using GLog."));
GLog->Logf(ELogVerbosity::Warning, TEXT("This is a warning using GLog."));

블루프린트에서 사용




블루프린트의 Event Graph창 에서 아래와 같이 Print String노드를 만들고 Event Tick과 연결시켜 줍니다.

0000



0001

Print String 노드에서 Development Only부분(빨간색 상자 표시)을 클릭하면 오른쪽과 같이 상세 설정이 가능한 핀들이 나옵니다.

  • In String : 출력할 로그의 내용을 의미합니다. 이곳에 출력할 내용을 문자열로 만들어 넣어주면 됩니다.
  • Print to Screen : 로그가 뷰포트에 출력될지를 지정하는 핀 입니다.
  • Print to Log : 로그가 출력 패널에 출력될지를 지정하는 핀 입니다.
  • Text Color : 출력될 로그의 텍스트 색상을 지정하는 핀 입니다.
  • Durration : 화면에 출력될 로그가 얼마나 남아있을지를 지정하는 핀 입니다.

Top