Company
교육 철학

Log 가이드

GameFrameworkLog = 확성기, ILogHelper = 확성기를 실제로 울려주는 사람(연결 어댑터),
LogLevel = 목소리 크기(디버그/정보/경고/오류/치명적).

등장인물 3명

1.
GameFrameworkLog
Debug / Info / Warning / Error / Fatal 메서드가 있음.
내부에 s_LogHelper가 설정돼 있어야 실제로 찍힘. (없으면 조용히 무시)
2.
ILogHelper (인터페이스)
로그 한 줄을 어디에 어떻게 찍을지를 구현하는 계약서.
시그니처: void Log(GameFrameworkLogLevel level, object message);
3.
GameFrameworkLogLevel (레벨)
Debug, Info, Warning, Error, Fatal 다섯 단계.

사용 방법

1.
헬퍼 구현: “어디에 찍을지” 정하기(예: Unity 콘솔).
2.
헬퍼 연결: GameFrameworkLog.SetLogHelper(new UnityLogHelper());
3.
찍기: GameFrameworkLog.Info("게임 시작");, ...Error("네트워크 실패"); 등.
(포맷도 지원: GameFrameworkLog.Debug("HP:{0}", hp);)

예시 (Unity)

// 1) Unity용 로그 헬퍼 using UnityEngine; using GameFramework; public class UnityLogHelper : GameFrameworkLog.ILogHelper { public void Log(GameFrameworkLogLevel level, object message) { switch (level) { case GameFrameworkLogLevel.Debug: Debug.Log(message); break; case GameFrameworkLogLevel.Info: Debug.Log(message); break; case GameFrameworkLogLevel.Warning: Debug.LogWarning(message); break; case GameFrameworkLogLevel.Error: Debug.LogError(message); break; case GameFrameworkLogLevel.Fatal: Debug.LogError("<FATAL> " + message); break; } } } // 2) 초기화(게임 시작 시 한 번만) void Awake() { GameFrameworkLog.SetLogHelper(new UnityLogHelper()); // 헬퍼 연결 필수! :contentReference[oaicite:8]{index=8} GameFrameworkLog.Info("게임 시작"); // 찍힌다! } // 3) 사용 예 void DoDamage(int dmg) { GameFrameworkLog.Debug("Damage:{0}", dmg); // 포맷 로그 :contentReference[oaicite:9]{index=9} if (dmg < 0) GameFrameworkLog.Warning("음수 데미지? 입력 확인 필요"); }
C#
복사

레벨을 언제 쓰나?

Debug: 개발 중 내부값 확인(릴리스 땐 보통 끄거나 최소화).
Info: 정상 흐름(게임 시작, 스테이지 로드 완료).
Warning: 이상하지만 계속 진행 가능한 상황(리트라이, 기본값 사용).
Error: 기능 실패(저장 실패, 다운로드 실패) — 사용자에게 안내 필요.
Fatal: 심각한 오류(데이터 손상, 재시작 필요). 알림 후 종료/복구 시나리오로.

자주 하는 실수 & 예방

헬퍼 안 붙임 → 아무 로그도 안 보임
→ 시작 시 SetLogHelper(...) 꼭 호출.
문자열 더하기 남발 → 성능 낭비
Debug("HP:{0}", hp) 같은 포맷 오버로드를 쓰자.
레벨 혼용 → 콘솔이 지저분
→ 팀 규칙 정해 통일(예: 네트워크 재시도=Warning, 실패=Error).

요약

GameFrameworkLog로그 API, ILogHelper출력 방법, LogLevel심각도.
헬퍼를 먼저 연결하고, 상황에 맞는 레벨로 메시지를 남기자.
이게 되면 버그 추적·운영 이슈 대응이 훨씬 쉬워진다!