본문 바로가기

UE4

[UE4] MyLogMacro.h

0. 설명

UE4_LOG를 확장하여 로그를 남기는 클래스와 함수명, 그리고 코드 라인수를 함께 로깅하도록 하는 매크로.
빌드 확인 : 4.17.2
 

1. Code

#pragma once

#define GET_CLASS_NAME_WITH_FUNCTION   FString(__FUNCTION__)
#define GET_LINE_NUMBER                       FString::FromInt(__LINE__)

#define LOG(LogCategory, Format, ...)               \
    UE_LOG(LogCategory, Log, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))

#define LOG_DISPLAY(LogCategory, Format, ...)       \
    UE_LOG(LogCategory, Display, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))

#define LOG_VERBOSE(LogCategory, Format, ...)       \
    UE_LOG(LogCategory, Verbose, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))

#define LOG_VERY_VERBOSE(LogCategory, Format, ...)  \
    UE_LOG(LogCategory, VeryVerbose, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))

#define LOG_WARNING(LogCategory, Format, ...)       \
    UE_LOG(LogCategory, Warning, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))

#define LOG_ERROR(LogCategory, Format, ...)         \
    UE_LOG(LogCategory, Error, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))

#define LOG_FATAL(LogCategory, Format, ...)         \
    UE_LOG(LogCategory, Fatal, TEXT("%s [%s] : %s"), *GET_CLASS_NAME_WITH_FUNCTION, *GET_LINE_NUMBER, *FString::Printf(Format, __VA_ARGS__))