내가 일하며 알게 된 프로그래밍
article thumbnail

모든 개발자는 Log 없이 개발을 할 수 없다.
(할 수 있는 천재가 있을 수도... 하지만 난 아니다)
printf(), Console.WriteLine(), Logger.debug() 등 언어에 따른 로그를 찍는 방법이 많이 있고,
유니티에도 Debug.Log() 를 통해 로그를 찍어볼 수 있다.
많은 개발자가 알고 있다.
하지만 대부분 일반적으로 로그를 그냥 평범한 텍스트형태로 출력할 것이다.


이번에 사용해 볼 디버그 로그 사용 방법은 UGUI에서 사용하는 RichText 사용법과 동일하다.

 

UGUI Text 에서 Rich Text 를 사용한 모습

위 Text에 사용된 문자열들 처럼

이번 로그는 <b>볼드</b>다
이번 로그는 <i>이탤릭</i>다
이번 로그는 <size=value>사이즈</size>다
이번 로그는 <color=value>컬러</color>다

위 텍스트들을 그대로 Debug.Log(string value)로 넣어보자.

 

    void Start()
    {
        Debug.Log("이번 로그는<b>볼드</b>다");
        Debug.Log("이번 로그는<i>이탤릭</i>다");
        Debug.Log("이번 로그는<size=20>사이즈</size>다");
        Debug.Log("이번 로그는<color=green>컬러</color>다");
    }

Debug.Log + Rich Text

자 여기까지 하면 완성이다.
하지만 Debug.Log를 찍을때마다 매번 저렇게 내가 직접 Rich Text를 써준다는건 너무 귀찮을 것이다.
이런 응용은 어떨까 string.format을 이용하여 보다 범용적으로 쉽게 찍는 방법인것이다.


public static class StringUtils
{
    public const string bold = "<b>{0}</b>";
    public const string italic = "<i>{0}</i>";
    public const string size = "<size={0}>{1}</size>";

    public static string ToString(this string str, string msg)
    {
        return string.Format(str, msg);
    }

    public static string ToString(this string str, int size, string msg)
    {
        return string.Format(str, size, msg);
    }
}

미리 사용할 Rich Text들을 정의 해둔 후

 

    void Start()
    {
        Debug.Log("이번 로그는 " + StringUtils.bold.ToString("볼드") + "다");
        Debug.Log("이번 로그는 " + StringUtils.italic.ToString("이탤릭") + "이다");
        Debug.Log("이번 로그는 " + StringUtils.size.ToString(20, "사이즈") + "이다");
    }

 

이런식으로 사용하면 보다 덜 귀찮게(?) 사용할 수 있을거라고 생각한다.
결과는 뭐...

당연하게 잘 나온다.

더욱 자세한 Rich Text의 사용법은 유니티 도큐먼트를 참조하면 좋을것이다.

profile

내가 일하며 알게 된 프로그래밍

@CtrlVGames