5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unityで作成したPCゲームのエラーと例外のログファイルを保存する

Last updated at Posted at 2018-05-04

環境

Windows10
Unity 5.5.* Pro

やりたかったこと

PCのスタンドアローン向けにビルドしたゲームのエラー/例外のログ(テキストファイル)を保存したい。

ログの設定

デフォルトだと Debug.Log が全てログファイルに記録されてしまうため、
以下の設定を変更する。
(Edit > Project Settings > Player > Other Settings > Logging)
Logging.jpg

しかし、これだとエディター上で確認中も表示されなくなってしまうため、
ビルドのスクリプトを作成し、ビルド時に以下のコードを実行するように追加する。

ビルドスクリプト抜粋
PlayerSettings.SetStackTraceLogType(LogType.Error, StackTraceLogType.ScriptOnly);
PlayerSettings.SetStackTraceLogType(LogType.Assert, StackTraceLogType.None);
PlayerSettings.SetStackTraceLogType(LogType.Warning, StackTraceLogType.None);
PlayerSettings.SetStackTraceLogType(LogType.Log, StackTraceLogType.None);
PlayerSettings.SetStackTraceLogType(LogType.Exception, StackTraceLogType.ScriptOnly);

さらに、ゲーム起動時に以下のコードを追加する。
LogType.Error を指定すると、エラーだけでなく例外もログファイルに記録される。

起動時の処理抜粋
#if UNITY_EDITOR || DEVELOPMENT_BUILD
#else
    // フィルターをかけてエラーと例外以外ログに記録しない。
    Debug.logger.filterLogType = LogType.Error;
#endif

このあたりを参考にさせていただきました。(ちょっと古いけど)
コマンドラインからUnityのビルドを走らせる。 -基礎編-
コマンドラインからUnityのビルドを走らせる。 -ステップアップ編-
【Unity】Unity 5.3 新機能メモ

ログファイルの出力

ゲーム起動時に「-logFile」のオプションを指定すればよい。
ファイルが上書きされていってしまうので、1日ずつ別のファイルにするように今日の日付をファイル名に含めた。
・・・が、うまくいかなかった。

問題有り
set unity_log_file=log_%date:~0,4%-%date:~5,2%-%date:~8,2%.txt
start \B \WAIT game.exe -logFile D:\log\%unity_log_file%

ゲームをバッチファイルから起動したところ、なぜかカレントディレクトリにログが出力された。
色々やってみたところ、「unity_log_file」の環境変数が -logFile よりも優先されるらしい。
unity_log_file を ulogfile のように名前を変更したらうまくいった。

修正版
set ulogfile=log_%date:~0,4%-%date:~5,2%-%date:~8,2%.txt
start \B \WAIT game.exe -logFile D:\log\%ulogfile%
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?