素人プログラマ奮闘記

javaの初心者がAndroidのことを独学で勉強しつつ、メモを残していきます。

   

Logcatの使い方

今回はLogcatについてしらべていきます。

Androidではログを取る機構としてLogcatというものが用意されています。
EclipseからLogcatビューで簡単に見ることができます。

多くのサイトを見てきましたが、基本的に以下のような使い方が多いです。


public class TestActivity { 
    /** Logcatのタグに含める文字列. */
    private static final String TAG = "TestActivity";
         
    @Override
    protected void onCreate(Bundle savedInstanceState) {
		Log.v(TAG,"メッセージ");
		Log.d(TAG,"メッセージ");
		Log.i(TAG,"メッセージ");
		Log.w(TAG,"メッセージ");
		Log.e(TAG,"メッセージ");
    }
}

まず下記のように、Logcatのタグの部分に現在実行中のクラス名を書くのが定番となっているっぽいです。

private static final String TAG = "TestActivity";

Logcatではタグでログを絞り込むことができるので、機械的にこうしておけば着目したいクラスのログがすぐに絞り込めて便利です。

次に、ログを仕込みたい場所に、用途によって以下のいずれかの関数を使用します。
Log.v(TAG,"メッセージ") : 簡易メッセージ
Log.d(TAG,"メッセージ") : デバッグメッセージ
Log.i(TAG,"メッセージ") : 情報
Log.w(TAG,"メッセージ") : 警告
Log.e(TAG,"メッセージ") : エラー

LogCatのビューが表示されていない場合は Eclipse[ウィンドウ]→[ビューの表示]→[その他]→[LogCat] で表示できます。

ログを出力するのとしないのとでは、開発効率がかなり違うので、できるだけログを使用することをお勧めします。

大量のログ対策

いざ使ってみると、LogCat窓に永遠と赤文字のログが出力され続けている場合があります。
自分はいつも実機(ギャラクシーS2 スマホ)をPCにUSBで接続して使用してソフトのデバッグをしているのですが、 LogCatを初め使用したときに下記のようなログが大量に出力されて困ったことが有ります。



内容を確認すると

USB接続は成功です。
USB接続は成功です。
USB接続は成功です。
USB接続は成功です。
USB接続は成功です。
以下略

お、おう・・・・わかってるよ・・・

常に警告されるためログが流れてしまい使い物になりませんでした。

ググって調べてたところ、サムスンの(ほかのスマホでも起こるのでしょうか?)デバイスが接続中に送り続けてくるログだそうです。

ほっといてもいいのですが、これだとすごく見づらいので
ググってみると、英語サイトの質問の回答に、LogCat窓の上部にtag:^((?!DataRouter).*)$でフィルタを設定しろ!と投稿されているのを発見しました。

いそいそと設定してみると
DataRuterのログだけが消えました。

ソフトリリース時の注意

ログは公開した後は出さないようにするのが一般的らしいです。

別途クラスを作って、ログ出力を、フラグでON/OFFできるようにしておいたほうが無難とのこと。

時間があるときにつくってみるか

カテゴリーへ

inserted by FC2 system