본문 바로가기
개발/Unity

Unity) Logger Class

by 테샤르 2020. 9. 7.

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);

    }
}

 

 

반응형

댓글