Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UnityプログラミングバイブルR6号宣伝&Unity Logging小話

いも
March 01, 2024

UnityプログラミングバイブルR6号宣伝&Unity Logging小話

UnityプログラミングバイブルR6号で執筆した内容の紹介と、UnityLoggingとDebug.Logの共存についての小話になります

https://www.amazon.co.jp/Unity%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%BB%E3%83%90%E3%82%A4%E3%83%96%E3%83%AB-R6%E5%8F%B7-%E6%B2%B3%E5%90%88-%E5%AE%9C%E6%96%87/dp/4862465900

いも

March 01, 2024
Tweet

More Decks by いも

Other Decks in Programming

Transcript

  1. 書いたこと Unity Logging の話 Crash And Exception Reporting の話 ターゲット

    普段Debug.Log でログを出力している人 ログを外部ファイルや外部サービスに出力していない人 2024/2/29 Unity Fukuoka #17 6
  2. Debug.Log との違い フォーマットテンプレートの設定 [2023/09/27 00:49:06.374] INFO | Log Info ↑

    こういう出力の並びや情報を変更できる ログレベルに応じた出力のフィルタリング Error は出力するがWarning は非表示にするとか 2024/2/29 Unity Fukuoka #17 8
  3. Crash And Exceptions Reporting とは Unity Cloud Diagnostics が提供する機能 アプリのエラーや例外ログを収集してWEB

    から確認できる 無料から利用できる Unity Logging は開発時のローカルでのログ収集に活用できるが、こち らはリリースしたアプリケーションのログ収集に活用できる。 2024/2/29 Unity Fukuoka #17 10
  4. Debug.Log の代替手段として有効そう Debug.Log はあくまで画面に出すだけの素朴な機能 ファイルに書き込みたい 環境に合わせてログを抑制したい develop ではログを出すがrelease では出したくないとか 上記をやりたいとなった時に毎回自作Logger

    クラスを定義しがち。 Unity Logging は一般的Logger の機能が一通り揃っており、移行も難し くないので今後のスタンダードとして採用できそう。 2024/2/29 Unity Fukuoka #17 13
  5. Debug.Log をUnityLogging に集約させる UnityLogging に集約させるパターン コンソール上のフォーマットが統一される ログファイルに情報が集約される Application.logMessageReceived が呼ばれなくなる リダイレクトされるためそもそもログを受信できなくなるっぽい

    Crash And Exception Reporting にException ログが送られなくなる SRDebugger や InGameDebugConsole といった実機でログを確認できる系 のライブラリで確認できなくなるので注意 2024/2/29 Unity Fukuoka #17 19
  6. UnityLogging をDebug.Log に集約させる UnityLogging のSink 機能を使ってDebug.Log に集約させるパターン UnityLogging 側の Log.Error

    や Log.Fatal を Crash And Exception Reporting に送信できる Application.logMessageReceived が呼ばれるのでログを扱う他ライ ブラリでも同様に扱える Debug.Log 側のログをファイルに書き込めない 歯抜けのログが出来上がる 2024/2/29 Unity Fukuoka #17 20
  7. 例2 開発ビルド時は Crash And Exceptions Reporting を見たいので Debug.Log に集約させる loggerConfig

    .WriteTo.UnityDebugLog() .WriteTo.File(logPath, minLevel: LogLevel.Verbose) 2024/2/29 Unity Fukuoka #17 23
  8. 例3 本番ビルド時は Crash And Exceptions Reporting を見たいので Debug.Log に集約させる しかしエラー以上しか吐かないようにする

    loggerConfig .WriteTo.UnityDebugLog() .WriteTo.File(logPath, minLevel: LogLevel.Error) 2024/2/29 Unity Fukuoka #17 24