Logcat

logcat.png

ログ記録

ログ記録というのは必要不可欠なものですが、適度に簡潔にしておかないとパフォーマンスにかなり悪影響を与えて、すぐに役に立たなくなります。ログ記録ファシリティにはレベルが5つあります。各レベルをいつどのように使うべきか、以下に説明します。

ERROR このレベルは何か致命的なことが発生したときに使うべきです。
つまり、ユーザにとって目に見えて重大で、データの削除やアプリケーションのアンインストール、データパーティションの削除、電話全体の再起動(あるいは、もっともっと悪いこと)といったことを明確にしないと復旧不能な問題が発生したときです。
このレベルは必ずログに記録しておいてください。
通常、ERROR レベルでログ記録するような問題は、統計収集サーバに報告するのが望ましいです。
WARNING :このレベルは深刻な予期せぬことが発生したときに使うべきです。
つまり、ユーザにとって目に見えて重大ですが、特定のアクションを実行すればデータを失うことなく復旧可能な問題が発生したときです。
このアクションには、しばらく待つだけやアプリを再起動することから、アプリケーションの新しいバージョンを再ダウンロードしたり、
デバイスをリブートすることまで、いろいろあります。
このレベルは必ずログに記録しておいてください。
WARNING レベルでログ記録するような問題も、統計収集サーバへの報告を検討するのが望ましいです。
INFORMATIVE このレベルは多くの人にとって関心のあることが発生したとき、それを通知するために使うべきです。
つまり、広範囲な影響があるかもしれませんが、必ずしもエラーではないような状況です。
これは、そのドメインにおいて最も信頼できると思われるモジュールによってのみログ記録されるべきです。
(信頼できないコンポーネントによって、ログが二重に記録されるのを防ぐため)。
このレベルは必ずログに記録しておいてください。
DEBUG: このレベルはデバイスに何が発生しているのか、想定外の動作を調査、
デバッグするための情報を記録するときに使うべきです。
あなたのコンポーネントに何が起こっているのか、必要十分な情報だけをログに記録すべきです。
もしデバッグログがログの大部分を占めるようならば、それらは VERBOSE レベルで記録すべきです。
DEBUG レベルはリリースビルドでも記録されるため、
if (LOCAL_LOG) ブロックや if (LOCAL_LOGD) ブロックで囲んでおく必要があります。
この LOCAL_LOG[D] はクラスやサブコンポーネントで定義され、こうしたログをすべて無効にできるようになっています。
したがって、if (LOCAL_LOG) ブロックにはアクティブな論理を入れてはいけません。
ログに必要な文字列構築も if (LOCAL_LOG) ブロックのなかに入れておく必要があります。
もし if (LOCAL_LOG) ブロックの外側で文字列構築しようとしているなら、ログ記録の呼び出しをメソッド呼び出しにリファクタリングしてはいけません。
依然として if (localLOGV) を使っているコードもあります。
これもまだ使えるのですが、名前付けは Android の標準に従っていません。
VERBOSE 以上のレベルのいずれにも当てはまらないログはすべて、VERBOSE レベルを使うべきです。
このレベルはデバッグビルドでのみログが記録されるよう、if (LOCAL_LOGV) ブロック(あるいは同等のもの)で囲んでおくべきです。
こうすることで、デフォルトではコンパイルされなくなります。
ログに必要な文字列構築は、リリースビルドに入らないよう、if (LOCAL_LOGV) ブロックのなかに入れておく必要があります。

LgCatのTextのところだけコピーしたい

日付が邪魔だぁ
ターミナルを開いて

adb logcat -v raw

と打ってみよう
Android in Eclipse: Copy/Paste From LogCat (only “Text”)

LogCatをターミナルでみよう

EclipseやAndroid Studio内にもLogCatありますが、コーディング領域が狭くなったりしてじゃまですよね?
なのでターミナルで見るのが良いです。
見る方法は

adb logcat

と打つだけです。
ただこれだと色が何もなくて見にくいので
pidcatというツールをインストールしましょう。すると色がつきます

brew install pidcat
pidcatp

Android-コーディングスタイル

サポートサイト Wikidot.com