개발/Unity
Unity) Logger Class
테샤르
2020. 9. 7. 16:01
Logger Class
유니티에서 Debug.Log 를 쓰다보면 특정상황에서 로그를 모두 출력을 하지 않는다 던가. 특정상황에서 로그를 컨트롤해야하는 상황이 생긴다. 기본적으로 Logger에서 값을 찍는 과정에서 (테스트 및 확인등등)여러 용도로 확인하기 위해서 많이 사용하기 때문에 로그를 처리안하는것만 진행해도 효과를 보는 경우가 많다.
디버그 모드 > 상용 모드로 작업하는 과정은 필수라고 보면 된다.
기본 메커니즘은 전처리기능을 사용한다.
[Player Setting] -[Other Settings] -[Scripting Define Symbols] - 'ENABLE_LOG'라고 설정하고 사용한다.
/**
* 생성일 : 2019년 12월 10일 PM 1시 23분
* 생성자 : -
* [Project Setting] - [ Other Setting ] - [Scripting Define Symbols]에 ENABLE_LOG 등록필요함
*/
using UnityEngine;
using System.Collections;
using System;
using System.IO;
using System.Text.RegularExpressions;
using UnityEngineInternal;
public sealed class Logger
{
public const string ENABLE_LOGS = "ENABLE_LOG";
public static bool isDebugBuild
{
get { return UnityEngine.Debug.isDebugBuild; }
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void Log(object message)
{
Debug.Log(message);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void Log(object message, UnityEngine.Object context)
{
Debug.Log(message, context);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogFormat(string message, params object[] args)
{
Debug.LogFormat(message, args);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogFormat(UnityEngine.Object context, string message, params object[] args)
{
Debug.LogFormat(context, message, args);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogWarning(object message)
{
Debug.LogWarning(message);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogWarning(object message, UnityEngine.Object context)
{
Debug.LogWarning(message, context);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogWarningFormat(string message, params object[] args)
{
Debug.LogWarningFormat(message, args);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogWarningFormat(UnityEngine.Object context, string message, params object[] args)
{
Debug.LogWarningFormat(context, message, args);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogError(object message)
{
Debug.LogError(message);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogError(object message, UnityEngine.Object context)
{
Debug.LogError(message, context);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogErrorFormat(string message, params object[] args)
{
Debug.LogErrorFormat(message, args);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogErrorFormat(UnityEngine.Object context, string message, params object[] args)
{
Debug.LogErrorFormat(context, message, args);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogException(System.Exception exception)
{
Debug.LogException(exception);
}
[System.Diagnostics.Conditional(ENABLE_LOGS)]
public static void LogException(System.Exception exception, UnityEngine.Object context)
{
Debug.LogException(exception, context);
}
}
★★★★☆
반응형