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
}
로그 타입에는 이렇게 정의 되어 있는데 필요에 따라 처리 하면 된다.
반응형