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);
}
}
★★★★☆
반응형
'개발 > Unity' 카테고리의 다른 글
Unity)Firebase) Unity 연동하기 (2) | 2020.09.09 |
---|---|
Unity) IL2CPP란? (0) | 2020.09.07 |
Unity)해결) Copying assembly from 'Temp/com.unity.multiplayer-hlapi.Runtime.dll' t (0) | 2020.09.06 |
Unity) Asset Bundles (0) | 2020.09.03 |
Unity) 카메라 화면 안에 있는지 여부 판단(object In the camera) (0) | 2020.08.21 |
댓글