kiyasuの日記

ハッピーうれピーよろしく哀愁

行数リミッターのあるLogWriter

    public class LogWriter : MonoBehaviour
    {

        public string fileName;
        public int limit = 2000;
        StreamWriter logFileWriter;

        void Start()
        {
            Application.logMessageReceivedThreaded += logMessageReceived;
            var filepath = Path.Combine(Application.persistentDataPath, fileName);

            if (File.Exists(filepath))
            {
                string[] lines = File.ReadAllLines(filepath);
                if (lines.Length > limit)
                {
                    File.Delete(filepath);
                }
            }
            logFileWriter = new StreamWriter(filepath, true);
        }

        private void logMessageReceived(string condition, string stackTrace, LogType type)
        {
            logFileWriter.WriteLine(DateTime.Now.ToString("yyyyMMddHHmmss") + " :" + type.ToString() + " :  " + condition);
            logFileWriter.WriteLine("================================");
        }

    }

HoloLens2とiPadで動作確認しました。アプリ閉じた後に書き込まれる感じ。

無制限にデバイス内のログファイルに追記追記追記とやってるといつか破綻をきたしそうなので。 persistentDataPathにファイルを格納するかどうか、というのは要検討のようです。

参考

Unity iOSの内部フォルダの保存、閲覧する方法 - Qiita