반응형
[Unity][C#] 게임에서 에러 발생으로 Crash가 발생 하면 로그 받기
public class CrashHandler : MonoBehaviour
{
void OnEnable()
{
Application.logMessageReceived += HandleLog;
}
void OnDisable()
{
Application.logMessageReceived -= HandleLog;
}
void HandleLog(string logString, string stackTrace, LogType type)
{
switch (type)
{
case LogType.Error:
case LogType.Assert:
case LogType.Exception:
{
Debug.Log($"<color=red>[CrashHandler] {type}</color>: {logString}");
Debug.Log($"<color=red>[CrashHandler]</color> Stack Trace: {stackTrace}");
//Debug.LogError($"<color=red>[CrashHandler] {type}</color>: {logString}");
//Debug.LogError($"<color=red>[CrashHandler]</color> Stack Trace: {stackTrace}");
break;
}
case LogType.Warning:
case LogType.Log:
break;
}
//if (type == LogType.Exception)
//{
// Debug.LogError($"<color=red>[CrashHandler]</color> Exception: {logString}");
// Debug.LogError($"<color=red>[CrashHandler]</color> Stack Trace: {stackTrace}");
//}
}
Application.logMessageReceived 로그 콜백을 사용 하여 유니티에서 발생 하는 각종 에러나 로그를 화면에 표시 하거나 파일에 저장 하는 일들을 처리 할 수 있다.
public enum LogType
{
//
// 요약:
// LogType used for Errors.
Error,
//
// 요약:
// LogType used for Asserts. (These could also indicate an error inside Unity itself.)
Assert,
//
// 요약:
// LogType used for Warnings.
Warning,
//
// 요약:
// LogType used for regular log messages.
Log,
//
// 요약:
// LogType used for Exceptions.
Exception
}
로그 타입에는 이렇게 정의 되어 있는데 필요에 따라 처리 하면 된다.
반응형
'Unity3D' 카테고리의 다른 글
구글 Noto Sans 폰트 & Font Icon & Font Awesome (0) | 2023.10.31 |
---|---|
Unity Finite State Machine | FSM | 유한상태머신 (0) | 2023.06.02 |
Unity - Can't get home directory Error (0) | 2023.03.07 |
DLL 의존성 확인 | DLL dependency checking (0) | 2023.01.11 |
[Unity] transform.root.GetComponentInChildren<Canvas>() | How do you get the parent canvas? (0) | 2022.12.24 |