LogCatの便利クラス

278 views
Skip to first unread message

Shigeo Mutoh

unread,
Nov 13, 2013, 2:54:22 AM11/13/13
to android-g...@googlegroups.com
武藤です。

突然ですが、あまりにうまくいったので垂れ流してみます。

Log出力したソース上のありかを探すのに手間取った経験はありませんか?
そんなあなたに朗報! TmLogを使えばLogCatにソースコード上の出力箇所
が表示される上、ダブルクリックするとその行へ飛べます。
さらに、debuggerbleがfalseのとき一斉に出力を停止できますので、もう
じゃんじゃかログ出力を書いちゃって良いのです。

使い方は簡単。
TmLog.enable(TmLog.isDebuggable(context));
をアプリの生成時に一回呼ぶだけ。
あとは、TmLog.d("hogehoge")とか書けばよいです。
※tagは自動で入るので使えなくなります。

サンプル。
import .......TmLog;
class MyActivity extends Activity {
public void onCreate() {
TmLog.enable(TmLog.isDebuggable(this));
}
public boolean onTouchEvent(.....) {
TmLog.d("hogehoge");
}
}

そうすると、LogCatにはこんな風に出力されます。
Tag部             
MyActivity.onTouchEvent
Text部
at (MyActivity.java:1234) , hogehoge <--こいつをダブルクリックできる!

お試しください。では。
TmLog.java

天然パーマ

unread,
Nov 13, 2013, 8:07:29 PM11/13/13
to android-g...@googlegroups.com
天然パーマと申します。

私も「クラス名、ログを入れた行数、メソッド名」が出力されたら幸せになれるなと思い
同じようにLogクラスをカスタマイズして使用しています。
(LogCatからのジャンプはどうすれば良いかわからず諦めていました・・・)

また、作成したクラスはホームページに載せています。

ダブルクリックに魅力を感じ実行してみましたが、なにも反応を示さなかったです。
開発環境としては
Windows 7(64bit)
ADTは最新を再インストール
Android SDKはすべてアップデート済み
実行端末:nexus 4(4.3)

AndroidManifestに明示的に「android:debuggable="true"」を入れても変化はありせんでした。

なにかダブルクリック時に必要な条件等があるのでしょうか?

以上、宜しくお願いします。

-----------------------------------------------------------
天然パーマ

2013年11月13日水曜日 16時54分22秒 UTC+9 TM:

Shigeo Mutoh

unread,
Nov 13, 2013, 11:38:02 PM11/13/13
to android-g...@googlegroups.com
武藤です。

むむむむ。なぜだろう?
私もwin7,64です。

ちなみにアイデアの発端は、LogCatに赤文字でstack traceが出た
ときに、ダブルクリックすると該当行へジャンプしてくれることにヒント
を得てます。

おそらくLogCatの実装で、行ダブルクリックハンドラの中に、
at (ファイル:行番号)
を見つけたら、Javaパースペクティブの該当ファイル、該当行をハイライト
すると書いてあるに違いない思って、やってみたら成功したのです。

> また、作成したクラスはホームページに載せています。
> http://bug-file.com/?p=135

見させていただきました。
throwしてないでstackが取れてる! そーなの~。勉強になります。

ファイル名出力をフルパスにしたら出るかも。
createCallerFileAndLine()を直さなきゃだめか。。

Hirokazu Fukami

unread,
Nov 13, 2013, 11:44:37 PM11/13/13
to android-g...@googlegroups.com
こんにちはfkmです。

githubにソースを置いて、そこでみんなのちからを借りて
いろいろ改善を加えていくのはどうでしょうか?

2013/11/14 Shigeo Mutoh <tmh...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

Shigeo Mutoh

unread,
Nov 14, 2013, 12:30:12 AM11/14/13
to android-g...@googlegroups.com
武藤です。

fkmさんいつもありがとう。
同じファイル名が違うパスあるとダメみたいです。
やっぱフルパスで出力しないとだめですね。そりゃそうです。。
しかしそうすると、横に長くなりすぎて見づらい。。

今、at構文をverboseで出力して、オリジナル文字列はそのまま出力
ってことにしようかと思ってます。そうすれば普段はLogCatでverboseを
オフっておき、いざとなればverboseオンで出力行が分かるしカチカチ
ジャンプできるはずです。

書き換え中なので、できあがったらgithub送りにします。

天然パーマ

unread,
Nov 14, 2013, 3:09:52 AM11/14/13
to android-g...@googlegroups.com
天然パーマです

> 同じファイル名が違うパスあるとダメみたいです。 
複数プロジェクトがあり、またMainActivity.javaも複数あったので
MainActivity123.javaに変更したら飛びました!!!!
幸せになれそうです。ありがとうございます。

-----------------------------------------------------------
天然パーマ

2013年11月14日木曜日 14時30分12秒 UTC+9 TM:
>> このグループから退会し、メールの受信を停止するには、android-group-japan+unsubscribe@googlegroups.com にメールを送信します。
>> このグループに投稿するには、android-group-ja...@googlegroups.com にメールを送信してください。

Shigeo Mutoh

unread,
Nov 14, 2013, 3:26:32 AM11/14/13
to android-g...@googlegroups.com
武藤です。

(13/11/14 17:09), 天然パーマ wrote:
> 幸せになれそうです。ありがとうございます。

こちらこそ。
良かったです。すごく幸せですよね。これなしで生きていけない
ですよね。

一応github送りにしました。こちらはライブラリになっています。
ソースは一個しかありませんが。Apache2.0 licenceです。
https://github.com/tmhouse/Padme

パドメは、パブリックドメインを略しただけです。
某映画の姫ではありません。

このソースには天然パーマさんのコードを一部パチらせてもらいました。
それからverboseでソースのありかをフルパスで出すようにしています
から、ファイル名の衝突問題は起きないはずです。

では。

Reply all
Reply to author
Forward
0 new messages