Develoment/Unreal
[언리얼] 로그 매크로 작성하기
Seo_re:
2023. 2. 14. 22:04
반응형
※ 로그 출력, 디버깅 포스팅은 아래 링크 확인하기
로그를 호출한 함수 및 라인넘버 출력하는 매크로
//프로젝트 헤더에 작성하면 된다.
#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);
결과
- 카테고리가 선언한 문자로 출력된다.
반응형