概要
XamarinのiOS, Androidアプリでログ出力する方法。
OS共通のAPI
System.Diagnostics.Debug.WriteLine("System.Diagnostics.Debug.WriteLine");
System.Diagnostics.Trace.WriteLine("System.Diagnostics.Trace.WriteLine");
*デフォルトではデバッグビルドでもシンボルの定義にTRACE
が定義されているのでこのAPIによるログが出力される。TRACE
を削除すればデバッグビルドでは出力されなくなる。設定はプロジェクトのオプション
を開き、コンパイラ
>シンボルの定義
で確認できる。
参照: Trace クラス (System.Diagnostics) | Microsoft Docs
ビルドタイプに関係無く、標準出力に出力するAPI。
System.Console.WriteLine("System.Console.WriteLine");
Android用のAPI
通常のLog
クラス(https://developer.android.com/reference/android/util/Log)が以下のAPIで使用できる。
string TAG = "##"; Android.Util.Log.Verbose(TAG, "Android.Util.Log.Verbose"); Android.Util.Log.Info(TAG, "Android.Util.Log.Info"); Android.Util.Log.Debug(TAG, "Android.Util.Log.Debug"); Android.Util.Log.Warn(TAG, "Android.Util.Log.Warn"); Android.Util.Log.Error(TAG, "Android.Util.Log.Error");
Debugビルドでの出力結果
System.Diagnostics.Debug.WriteLine System.Diagnostics.Trace.WriteLine System.Console.WriteLine [##] Android.Util.Log.Verbose [##] Android.Util.Log.Info [##] Android.Util.Log.Debug [##] Android.Util.Log.Warn [##] Android.Util.Log.Error
Releaseビルドでの出力結果
System.Diagnostics.Debug.WriteLine
は出力されていない。
System.Diagnostics.Trace.WriteLine System.Console.WriteLine [##] Android.Util.Log.Verbose [##] Android.Util.Log.Info [##] Android.Util.Log.Debug [##] Android.Util.Log.Warn [##] Android.Util.Log.Error
iOS用のAPI
iOS専用のログ出力APINSLog
はXamarinではConsole
クラスで使用されている。
Debugビルドでの出力結果
System.Diagnostics.Debug.WriteLine System.Diagnostics.Trace.WriteLine 2020-04-19 14:21:29.098980+0900 XamarinTest2.iOS[4920:390843] System.Console.WriteLine
Releaseビルドでの出力結果
iOSのReleaseビルドではアプリケーション出力はされない。