언리얼/언리얼 C++

커스텀 로그

monstro 2024. 10. 5. 21:55
728x90
반응형

프로젝트를 만들면서 로그를 통해 프로그래밍의 문제가 발생하는 부분을 파악하거나 수정점을 찾을 수 있습니다.

그리고 언리얼 엔진에서는 이런 로그 기능을 사용자가 직접 커스터마이징할 수 있게 지원합니다.

이번 포스트에서는 언리얼 엔진에서의 커스텀 로그를 만드는 방법을 알아보겠습니다.

 

1) 기본설정

커스텀 로그를 사용하기 위해서는 기본적으로 설정해야 하는 요소가 존재합니다.

설정 요소는 다음과 같습니다.

 

프로젝트명.h 에서는 다음과 같이 작성합니다.

DECLARE_LOG_CATEGORY_EXTERN( CategoryName, DefaultVerbose, CompileTimeVerbose );

이때 

CategoryName 인자는 출력할 커스텀 로그의 이름이 되고,

DefaultVerbose 인자는 런타임동안 로그로 남겨질 상세정보를 의미합니다.

마지작으로 CompileTimeVerbose는 컴파일동안의 상세정보를 어디까지 확장하여 로그로 남길 것인지를 의미합니다.

 

또한 프로젝트명.cpp 에서는 다음과 같이 작성합니다.

DEFINE_LOG_CATEGORY(CategoryName);

CategoryName은 출력할 커스텀 로그의 이름으로서 위와 같이 명시하면 커스텀 로그를 사용할 준비가 끝나게 됩니다.

이제 실제 커스텀로그를 사용하기 위해서는

로그를 사용할 오브젝트에서 커스텀 로그가 선언된 헤더 파일을 포함시켜주면 됩니다.

 

2) 예제

이번 예제에서는 커스텀 로그를 인자로 UE_LOG 함수에서 인자로 사용하는 방법 대신

매크로를 만들어 사용해보도록 하겠습니다.

 

매크로는 프로젝트명.h에 하나씩 추가해보도록 하겠습니다.

사용할 커스텀 로그의 이름은 CustomLog입니다.

제일 먼저 기본적으로 필요한 사항을 작성하였습니다.

 

 

헤더 파일에 위와 같이 명시하여 CustomLog에 대하여 위와 같이 상세 정보를 출력하게끔 설계하였습니다.

 

 

다음으로 cpp 파일에는 위와 같이 선언하여 커스텀 로그를 사용할 수 있게 만들었습니다.

이제 헤더 파일에 매크로들을 하나씩 추가해보도록 하겠습니다.

 

 

위의 매크로는 매크로에 포함되어 사용될 매크로입니다.

로그가 어떤 오브젝트의 어떤 함수에서 호출되었는지 확인할 수 있습니다.

 

 

첫 번째 매크로는 간단하게 구성하였습니다.

어떤 오브젝트의 어떤 함수에서 호출하는지와 간단한 문장을 입력받아 로그로 남길 수 있습니다.

 

GameInstance.cpp에서 사용합니다.

 

위와 같이 작성하였고 실행결과를 확인해보겠습니다.

 

 

CustomLog라는 이름으로 Warning 단계의 정보가 로그로 남겨진 것을 확인할 수 있습니다.

로그로 남겨진 정보는 로그를 남긴 오브젝트와 함수, 추가적으로 작성한 문장입니다.

 

다음으로는 로그가 호출된 문장의 위치를 한번 나타내보겠습니다.

 

 

위와 같이 매크로를 추가하고

 

 

위와 같이 로그를 남겨보도록 하겠습니다.

실행결과는 다음과 같습니다.

 

 

로그가 오브젝트의 어떤 함수에서 어느 위치에서 호출되었는지를 확인할 수 있습니다.

마지막으로,

로그창이 아닌 GEngine을 통한 화면에 로그를 남기는 매크로를 만들어 보겠습니다.

 

 

 

위와 같이 작성하였습니다.

실행결과를 확인해보겠습니다.

 

 

스크린창에 로그가 나타나는 것을 확인할 수 있습니다.

로그의 정보는 명시한 대로 로그를 작성한 오브젝트와 함수 그리고 그 함수의 라인번호입니다.

 

일일이 로그창을 열어볼 필요 없이

필요한 경우에 스크린으로 바로바로 확인할 수 있으므로 매우 유용하게 사용하시면 될 것 같습니다.

 

커스텀 로그의 경우, 사용자의 필요에 따라 자유롭게 만들 수 있다는 장점이 있습니다.

또한 편의나 기획에 따라 마음대로 조정하고 설계할 수 있다는 점에서도 알아두면 좋을 것이라고 생각합니다.

728x90
반응형