ログ機能

Android でのログ機能の使用

1. Android ログユーティリティクラス:Log

Android SDK には専用のログユーティリティクラス android.util.Log が用意されており、優先度の低い順に 5 段階のログメソッドを提供しています:

メソッドレベル説明
Log.v()Verbose最も低いレベル。最も細かいログ情報の出力に使用
Log.d()Debugデバッグ情報。開発時に最もよく使用される
Log.i()Info一般的な情報メッセージ
Log.w()Warn警告情報。潜在的なリスクが存在する可能性がある
Log.e()Errorエラー情報。catch ブロックで捕捉された例外など

2. 基本的な使い方

MainActivity の onCreate() メソッドにログを追加します:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    // Info レベルのログを出力
    Log.i("foxdevelop", "xxxxxx");
}Code language: JavaScript (javascript)

メソッドのパラメータ説明:

パラメータ説明
第1引数(tag)ログタグ。通常はソースを識別する短い文字列で、フィルタリングに便利
第2引数(msg)ログの内容。出力したいメッセージ

プロジェクトを実行後、Logcat ウィンドウを開くと出力されたログが表示されます。


3. Logcat ウィンドウの使い方のヒント

機能操作
ログを表示アプリ実行後、下部の Logcat パネルに自動表示される
キーワード検索Logcat 検索ボックスにキーワード(例:foxdevelop)を入力してフィルタリング
レベルでフィルタドロップダウンメニューで Show only selected application / No Filters / Edit Filter Configuration を選択
タグでフィルタ検索ボックスに tag:foxdevelop を入力

4. System.out.println() が推奨されない理由

比較項目System.out.printlnLog
制御性制御不可レベルやフィルタで制御可能
時間情報タイムスタンプなし各ログに正確な時間が付与される
フィルタリングタグでフィルタ不可タグ、レベル、プロセスなど多次元フィルタをサポート
ログレベルレベル区分なし5 段階のレベルで問題切り分けが容易
本番環境無効化不可無効化や特定レベルのみ出力に設定可能
// 非推奨
System.out.println("xxxxxxx");

// 推奨
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

5. Android Studio ログショートカット

AS には強力な Live Template ショートカットが用意されています。入力して Tab キーを押すと自動補完されます:

ショートカット(入力後 Tab)生成されるコード説明
logdLog.d(TAG, "onCreate: ");Debug ログを生成
logiLog.i(TAG, "onCreate: ");Info ログを生成
logwLog.w(TAG, "onCreate: ");Warn ログを生成
logeLog.e(TAG, "onCreate: ");Error ログを生成
logvLog.v(TAG, "onCreate: ");Verbose ログを生成
logtprivate static final String TAG = "クラス名";クラス内で使用すると、現在のクラス名が TAG として自動生成される

6. 完全な例

public class MainActivity extends AppCompatActivity {

    // クラス内で logt + Tab を使用して自動生成
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // TAG 定数を使用してログ出力
        Log.i(TAG, "foxdevelop");
        Log.e(TAG, "ここで例外が発生しました");

        // 非推奨
        System.out.println("xxxxxxx");
    }
}Code language: PHP (php)

実行後の Logcat 出力結果:

I/MainActivity: foxdevelop
E/MainActivity: ここで例外が発生しましたCode language: HTTP (http)

ログ機能

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です