기본 패턴
csharp
[System.Diagnostics.Conditional("ENABLE_LOG")]
public static void Log(object message)
{
Debug.Log(message);
}설명
- Unity 공식 가이드는 특히
Update,LateUpdate,FixedUpdate안의 로그가 성능을 크게 떨어뜨릴 수 있다고 설명합니다. - 릴리스 빌드에서는 로그를 완전히 제거하거나, 조건부 래퍼를 통해 끄는 방식이 흔합니다.
- Stack Trace 옵션도 필요 이상으로 켜 두면 성능과 로그량에 영향을 줍니다.
- 디버깅 편의와 릴리스 성능은 분리해서 운영하는 편이 좋습니다.
짧은 예제
csharp
public static class GameLog
{
[System.Diagnostics.Conditional("ENABLE_LOG")]
public static void Info(object message)
{
Debug.Log(message);
}
}빠른 정리
| 항목 | 설명 |
|---|---|
| 조건부 로그 | 빌드별로 로그 포함 여부 제어 |
| Update 로그 주의 | 프레임마다 출력되면 비용 큼 |
| Stack Trace 설정 | 릴리스에서는 최소화 고려 |
| 래퍼 함수 | 로그 정책을 한곳에서 관리 |
| 디버그와 출시 분리 | 운영 환경 요구가 다름 |
주의할 점
문제가 생겼을 때 쓸 로그까지 모두 지워 버리면 운영 진단이 어려워질 수 있습니다. 완전 삭제와 최소 유지 사이에서 목적을 나눠 두는 편이 좋습니다.
참고 링크
2 sources