ログ出力には以下の種類があります。
例えば、アプリケーションが異常終了する場合はエラーメッセージ、処理は続けられるがおかしなデータである場合は警告メッセージ、端末情報は情報メッセージ、デバッグ用はデバッグメッセージ、どの処理が実行されたか細かく知りたいような場合は詳細メッセージ、などのように、状況や欲しい情報によってログレベルを使い分けます。
ログレベル メソッド 内容 ERROR e() エラーメッセージ WARN w() 警告メッセージ INFO i() 情報メッセージ DEBUG d() デバッグメッセージ VERBOSE v() 詳細(冗長)メッセージ
◆ ログを出力する
それでは早速サンプルプログラムを作ってみましょう。ログレベルを変えることで出力結果がどのように変わるのかを確認することにします。
Androidプロジェクトの設定
LogTest.java
プロジェクト名: LogTest ビルドターゲット: Android 2.1-update1 アプリケーション名: LogTest パッケージ名: jp.co.triware.samples.LogTest アクティビティーの作成: LogTest 最小SDKバージョン: 7
package jp.co.triware.samples.LogTest; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class LogTest extends Activity { private static final String TAG = "LogTest"; private static final boolean LOG_ERROR = true; private static final boolean LOG_WARN = true; private static final boolean LOG_INFO = true; private static final boolean LOG_DEBUG = true; private static final boolean LOG_VERBOSE = true; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); if (LOG_ERROR) Log.e(TAG, "ERROR"); if (LOG_WARN) Log.w(TAG, "WARN"); if (LOG_INFO) Log.i(TAG, "INFO"); if (LOG_DEBUG) Log.d(TAG, "DEBUG"); if (LOG_VERBOSE) Log.v(TAG, "VERBOSE"); } }各メソッドの第1引数はタグ、第2引数はメッセージです。Exceptionが発生したときには第3引数をセットすればそのログを出力できるのですが、それについては別の機会に説明することにします。
サンプルでは第2引数に直接文字列をセットしていますが、変数を使う場合にはそれがnullにならないように気をつける必要があります。nullを渡してしまうとログ出力をしたがためにアプリケーションが異常終了してしまいます。
また、サンプルでは、LOG_XXXにtrue/falseをセットすることで、デバッグ時に必要なログだけ出力できるようにしています。リリース時には警告メッセージとエラーメッセージは残してそれら以外は消しておくと良いでしょう。
実行結果
Eclipseで実行すると「デバッグ」パースペクティブや「DDMS」パースペクティブの「LogCat」ビューにログが出力されます。
ログメッセージは、ログレベルによって色が異なります。エラーは赤、警告は橙、情報は緑、デバッグは青、詳細は黒です。上の[V][D][I][W][E]のアイコンをクリックすると、表示するログを制限できます。
ログレベル ログの色 アイコンをクリックした時に表示されるログ E (Error) 赤 エラー W (Warn) 橙 エラー・警告 I (Info) 緑 エラー・警告・情報 D (Debug) 青 エラー・警告・情報・デバッグ V (Verbose) 黒 エラー・警告・情報・デバッグ・詳細
0 件のコメント:
コメントを投稿