728x90
이 글은 Inflearn - Rookiss : 언리얼 엔진4 입문 강의를 듣고 정리한 글입니다.
목차.
로그(UE_LOG) 출력
유니티 로그 : Debug.Log
언리얼 로그 : UE_LOG
둘의 가장 큰 차이는 매개 변수라고 볼 수 있다.
언리얼 로그의 매개변수는 UE_LOG(카테고리, 로깅수준, 형식, 인자)로
유니티 로그만 출력해본 사람으로서 조금 어렵게 느껴진다.
// Called when the game starts or when spawned
void AMyActor::BeginPlay()
{
Super::BeginPlay();
//카테고리, 로깅수준, 형식, 인자
UE_LOG(LogTemp, Warning, TEXT("BeginPlay %d"), 3);
UE_LOG(LogTemp, Warning, TEXT("BeginPlay"));
}
게임을 실행시키면 한번 로그가 출력되는 코드이다.
카테고리(ELog Category)
- 로그 메시지를 그룹화하고 구분하기 위해 사용
- LogTemp, LogPhysics 등 목적에 따라 다양한 카테고리가 있다.
로깅 수준(ELog Verbosity)
- 특정 유형의 로그의 중요도와 상세도를 나타냄
- 목적에 따라 다양한 수준이 존재
namespace ELogVerbosity
{
enum Type
{
NoLogging = 0,
Fatal,
Error,
Warning,
Display,
Log,
Verbose,
VeryVerbose,
All = VeryVerbose,
NumVerbosity,
VerbosityMask = 0xf,
SetColor = 0x40,
BreakOnLog = 0x80,
}
}
Fatal
- 가장 높은 중요도를 가지는 로그 수준입니다.
- 치명적인 오류 또는 상황을 나타내며, 이 수준의 로그가 발생하면 프로그램이 종료될 수 있습니다.
Error
- 중요한 오류를 나타내는 로그 수준입니다.
- 프로그램의 실행에 큰 문제가 발생했음을 나타내며, 오류 해결에 필요한 정보를 제공합니다.
Warning
- 경고나 주의사항을 나타내는 로그 수준입니다.
- 프로그램이 정상적으로 실행되긴 하지만, 잠재적인 문제가 발생할 수 있음을 알립니다.
Display
- 사용자에게 표시되는 정보를 나타내는 로그 수준입니다.
- 주로 게임 상에서 유용한 정보를 출력할 때 사용됩니다.
Log
- 기본적인 로그 수준으로, 중요한 정보를 나타냅니다.
- 프로그램의 상태, 이벤트, 데이터 등을 추적하는 데 사용됩니다.
Verbose
- 더 상세한 정보를 제공하는 로그 수준입니다.
- 디버깅 시에 자세한 내용을 확인하기 위해 사용됩니다.
VeryVerbose
- 가장 상세한 정보를 제공하는 로그 수준입니다.
- 매우 자세한 디버깅 정보를 출력할 때 사용됩니다.
만약 출력 로그창이 없다면. 창 -> 개발자 툴 -> 출력 로그 클릭하면 창이 뜹니다.
에디터창에서 컴파일 후 게임 실행을 시켜보면
노란색 Warning이 출력되었습니다.
Error를 출력했다면 빨간색이 출력됩니다.
그리고 언리얼에서 로그는 단순 출력뿐만 아니라 로그 파일로도 저장이 됩니다.
저장된 로그파일은 Saved -> Logs 폴더에 저장이 되고 만약 Tick으로 Log를 출력해도
모두 로그파일에 저장이 되기때문에 가급적이면 Tick에서는 Log사용은 지양하는 게 좋은 것 같습니다.
브레이크 포인트 디버깅
디버깅도 유니티와 차이가 있습니다.
유니티
- 브레이크 포인트를 잡고 로컬 Windows 디버거를 실행후 게임을 실행시키면 별도의 작업 없이 디버깅이 가능
언리얼
- 언리얼 에디터창을 끄고, 브레이크 포인트를 잡은 후 Windows 디버거를 실행하면 언리얼 에디터가 다시 켜짐
- 이 상태에서 플레이를 누르면 디버깅이 가능
- 만약 디버깅을 중단하면 언리얼 에디터가 다시 꺼짐
그리고 디버거 버튼 옆에 저렇게 여러가지 Debug 구성이 있는데
Debug는 개발단계에서 사용하기 좋다는 특징이 있고
Development는 최적화가 되어있지만 디버깅을 할때 조금 문제가 있을 수 있다는 특징이 있다.
728x90
'언리얼' 카테고리의 다른 글
[UE4] 언리얼 엔진 기초 : 클래스에서 카메라 움직임 제어 (0) | 2023.08.19 |
---|---|
[UE4] 언리얼 엔진 기초 : 클래스에서 Character 생성과 이동 (0) | 2023.08.19 |
[UE4] 언리얼 엔진 기초 : 게임플레이 프레임워크 - GameMode와 Pawn 움직이기 (0) | 2023.08.19 |
[UE4] 언리얼 엔진 기초 : 회전(FRotator) (0) | 2023.08.18 |
[UE4] 언리얼 엔진 기초 : C++을 활용한 Actor 생성 (0) | 2023.08.18 |