Android開発してて思った

Android開発をしていて思ったことを書いていきます

ログを出力する

今回はいまさらながらAndroidでログを出力する方法について書きたいと思います。
アプリ開発をしているときにバグを検査するときに、
これってどんな値が入っていたんだろうってのを調べるのに役立ちます。

さて、ログを出力する方法は一般的にこのように書きます。

Log.v(TAG, "index=" + i);

TAGの部分はどこから出力されているのかを見分けるため識別用文字列です。
クラスのはじめの辺に書いておきましょう。
一般的にはクラス名を入れます。

private static final String TAG = "一般的にはクラス名をいれます";

こんな感じです。

private static final String TAG = "MyActivity";


ログ出力において、デバッグ用や致命的なエラー用など、
発生するログによって使い分けることもできます。
具体的にはLog.v()、Log.d()、Log.i()、Log.w()、Log.e()といったメソッドを使います。



ASSERTLog.println(Log.ASSERT, TAG, message)前提条件チェック用
DEBUGLog.d()デバッグ
ERRORLog.e()エラー発生用
INFOLog.i()情報用
VERBOSELog.v()詳細情報用
WARNLog.w()警告用

public class MainActivity extends Activity {
	
	private static final String TAG = "MainActivity";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Log.println(Log.ASSERT, TAG, "ASSERT MESSAGE");
		Log.e(TAG, "ERROR MESSAGE");
		Log.d(TAG, "DEBUG MESSAGE");
		Log.w(TAG, "WORN MESSAGE");
		Log.i(TAG, "INFO MESSAGE");
		Log.v(TAG, "VERBOSE MESSAGE");
	}
}

これを実行するとLogCatには、このように色分けされて表示されます。
f:id:rikisha-blog:20140501200839p:plain

例えば、エラーメッセージ以外は表示しないようにする場合
LogCat右側のリストを選択すると選択したものより重要でないエラーは出力されません。
f:id:rikisha-blog:20140501201122p:plain


Log | Android Developers