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

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

Avatar for いも いも
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

Avatar for いも

いも

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