Develoment/Unreal

[언리얼] 로그 매크로 작성하기

Seo_re: 2023. 2. 14. 22:04
반응형

 

 

 

 

※ 로그 출력, 디버깅 포스팅은 아래 링크 확인하기

 

[언리얼] 로그 출력, 디버깅 하기

로그 출력 - 다음과 같이 작성하면 된다. (예시에서 Value는 지역변수) //카테고리, 로깅수준, 형식(인자) UE_LOG(LogTemp, Warning, TEXT("UpDown %f"), Value); 결과 디버깅 하기 - 기존에 켜둔 언리얼 에디터를

srdeveloper.tistory.com

 

 

 

 

로그를 호출한 함수 및 라인넘버 출력하는 매크로

//프로젝트 헤더에 작성하면 된다.
#define CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
  • __FUNCTION__ : 함수명
  • __LINE__ : 라인 넘버

 

//로그를 출력할 라인에 다음과 같이 입력.
UE_LOG(LogTemp, Warning, TEXT("%s"), *CALLINFO);
  • CALLINFO를 적용하려면 해당 매크로를 가진 헤더를 포함시켜줘야한다.

 

 

결과

- 로그를 입력한 함수와 라인넘버가 Output Log창에 표시된다.

 

 

 

 

UE_LOG를 매크로로 정의하기

//헤더 파일에 입력
#define CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
#define PRINT_CALLINFO() UE_LOG(LogTemp, Warning, TEXT("%s"), *CALLINFO)

//로그를 출력할 라인에 다음과 같이 입력
PRINT_CALLINFO();

 

 

 

 

인수를 여러개 넘겨받는 로그 매크로 정의하기

//헤더 파일에 입력
#define CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
#define PRINT_LOG(fmt, ...) UE_LOG(LogTemp, Warning, TEXT("%s %s"), *CALLINFO, *FString::Printf(fmt, ##__VA_ARGS__))

//로그를 출력할 라인에 다음과 같이 입력
PRINT_LOG(TEXT("LogTest : %s"), TEXT("Log project"));
  • ... : 가변 인수

 

 

결과

 

 

 

 

 

카테고리 매크로 정의하기

//헤더 파일에 입력
DECLARE_LOG_CATEGORY_EXTERN(TESTLOG, Log, All);

#define CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
#define PRINT_CALLINFO() UE_LOG(TESTLOG, Warning, TEXT("%s"), *CALLINFO)

//CPP 파일에 입력
DEFINE_LOG_CATEGORY(TESTLOG);

 

 

 

결과

  • 카테고리가 선언한 문자로 출력된다.

 

 

 

 

 

반응형