유니티를 사용하다 보면 디버깅을 위해 로그를 찍을때 리스트 뷰에서는 콜스택에 대한 정보를 볼수 없어 귀찮은 경우가 많다. 어셋 스토에서 판매하고 있는 'Console Pro'라는 어셋을 사용하면 편리하긴하지만..

using UnityEngine;


public static class LogHeader

{

    public static string Path

    {

        get

        {

#if UNITY_EDITOR || USE_DEBUGGING

            string callStack = StackTraceUtility.ExtractStackTrace();

            callStack = callStack.Substring(callStack.IndexOf("\n") + 1);

            callStack = callStack.Substring(0, callStack.IndexOf("\n") + 1);

            return callStack;

#else

            return "";

#endif

        }

    }


    public static string Function

    {

        get

        {

#if UNITY_EDITOR || USE_DEBUGGING

            string callStack = StackTraceUtility.ExtractStackTrace();

            callStack = callStack.Substring(callStack.IndexOf("\n") + 1);

            callStack = callStack.Substring(0, callStack.IndexOf("("));

            //callStack = callStack.Substring(0, callStack.IndexOf(" ") + 1);

            return "[" + callStack + "] ";

#else

            return "";

#endif

        }

    }


    // example :

    //     Debug.Log(LogHeader.Function + "any log text will be here");

    // result :

    //    CallStackLogMain:func_2() (at Assets/CallStackLogMain.cs:17)

    //    any log text will be here

}



Posted by kukuta
TAG ,

댓글을 달아 주세요