Unity3D

[Unity][C#] 게임에서 에러 발생으로 Crash가 발생 하면 로그 받기

DragonTory 2024. 2. 16. 11:16
반응형

[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
    }

로그 타입에는 이렇게 정의 되어 있는데 필요에 따라 처리 하면 된다. 

반응형