본문 바로가기
Unreal Engine4 or 5/Debugging

언리얼 디버그 로그 출력방법 관련 매크로

by 눈야옹 2019. 1. 1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    //    Log 카테고리, Log스타일, Log Message
    UE_LOG(LogTest, Log, TEXT("Log Message"));
 
    //Log 파일에 출력된다.
    UE_LOG(LogTest, Verbose, TEXT("Verbose Log Message"));
    //Log파일에 출력되며 상세 내용을 포함한다.
    UE_LOG(LogTest, VeryVerbose, TEXT("VeryVerbose Log Message"));
    //콘솔과 파일에 출력된다.
    UE_LOG(LogTest, Display, TEXT("Display Log Message"));
    //파일과 에디터 로그에 출력된다.
    UE_LOG(LogTest, Log, TEXT("Log Message"));
    //파일과 에디터 로그에 노란색으로 출력된다.
    UE_LOG(LogTest, Warning, TEXT("Warning Log Message"));
    //파일과 에디터 로그에 빨간색으로 출력된다.
    UE_LOG(LogTest, Error, TEXT("Error Log Message"));
    ////파일과 에디터 로그에 빨간색으로 출력되며 프로그램을 종료한다.
    //UE_LOG(LogTest, Fatal, TEXT("Fatal Log Message"));
cs

Log파일 카테고리 지정 방법

기본적으로 Logtemp를 쓰면된다.

1
2
3
4
5
//.h 파일에 Log 카테고리를 선언한다. 
DECLARE_LOG_CATEGORY_EXTERN(LogTest, Log, All);
 
//.cpp 파일에 정의를 한다.
DEFINE_LOG_CATEGORY(LogTest);
cs
LOG를 새로 커스텀하는 방법 예제
 

매크로를 지정할때 인자들

__FILE__ = 파일 경로

__FUNCTION__ 또는 __func__ =호출된 함수명 

__LINE__ = 호출된 라인 번호

Verbosity 인자로는 아래와 같은 것들이 있다.

여기서 주의해야할점은 Fatal의 경우 크래쉬를 유발하기 때문에 지양하자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
        NoLogging        = 0,
 
        /** Always prints s fatal error to console (and log file) and crashes (even if logging is disabled) */
        Fatal,
 
        /** 
         * Prints an error to console (and log file). 
         * Commandlets and the editor collect and report errors. Error messages result in commandlet failure.
         */
        Error,
 
        /** 
         * Prints a warning to console (and log file).
         * Commandlets and the editor collect and report warnings. Warnings can be treated as an error.
         */
        Warning,
 
        /** Prints a message to console (and log file) */
        Display,
 
        /** Prints a message to a log file (does not print to console) */
        Log,
 
        /** 
         * Prints a verbose message to a log file (if Verbose logging is enabled for the given category, 
         * usually used for detailed logging) 
         */
        Verbose,
 
        /** 
         * Prints a verbose message to a log file (if VeryVerbose logging is enabled, 
         * usually used for detailed logging that would otherwise spam output) 
         */
        VeryVerbose,
 
        // Log masks and special Enum values
 
        All                = VeryVerbose,
        NumVerbosity,
        VerbosityMask    = 0xf,
        SetColor        = 0x40// not actually a verbosity, used to set the color of an output device 
        BreakOnLog        = 0x80
cs

 

게임 창에 출력하기

1
2
3
4
    //스크린에 출력하기 블루프린트에서 Print String와 동일
    GEngine->AddOnScreenDebugMessage(-15.0f, FColor::Blue, TEXT("Can you see this message?"));
    GEngine->AddOnScreenDebugMessage(-15.0f, FColor::Red, FString::Printf(TEXT("Input Value : String : %s, Int : %d, Float : %f"), TEXT("Name"), 993.14f));
 
cs

 

 

 

참고 : http://blog.dustinlee.me/220935635089http://yesarang.tistory.com/74 , http://unrealengine.tistory.com/category/Unreal%20C++/Log ,  https://docs.unrealengine.com/en-us/Programming/Assertions

 

한글 폰트 관련 글