コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity 5.3 新機能「ILogHandler」

Unity 5.3 から「UnityEngine.ILogHandler」が追加されました
ILogHandlerを実装したクラスをLoggerクラスに設定することで
ログ出力時の挙動を変えることができます

public class MyLogHandler : ILogHandler
{
    public void LogException( 
        Exception           exception, 
        UnityEngine.Object  context 
    )
    {
        // ...
    }

    public void LogFormat( 
        LogType             logType, 
        UnityEngine.Object  context, 
        string              format, 
        params object[]     args 
    )
    {
        // ...
    }
}

例えばこのようなILogHandlerを実装したクラスを

var logger = new Logger( new MyLogHandler() );
logger.Log( "ログ" );

Loggerクラスのコンストラクタで指定してから
ログ出力する処理を記述します

後は、ILogHandlerを実装したクラスの
LogException関数とLogFormat関数の処理を記述することで
独自のログ出力機能を実装できます

例えば、出力されたログをテキストファイルに保存する、
サーバに送信するといった機能を実現できるようになります

参考サイト様