0

次のコマンドを使用してアプリケーションのログを出力するには、Windowsのcmdターミナルを使用しています。

adb.exe logcat | find "%part_of_my_apps_name%"

ただし、すべてのログが出力に表示されるわけではありません。このようなメッセージのみ:

I/AppService(10597): Received start id 1: Intent { cmp=package_name/.AppService(has extras) } 

そして私のAppService中には次のコードがあります:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    Log.i(TAG, "Received start id " + startId + ": " + intent);
    Log.i(TAG, "Test");

だから私は何が間違っているのですか?

UPD:少し間違った質問をしました。私は実際にパッケージではなくアプリの名前の一部を使用したので、ログ出力に表示する必要があります。

4

3 に答える 3

1

TAG変数が何であるかに応じて、コマンドを使用します

adb.exe logcat -s "[tagname]"

たとえば、私のコードで、私のTAGが次のように宣言されている場合:

public static final String TAG = "com.myapp";

私のLogCatは

adb.exe logcat -s "com.myapp"

また、引用符はオプションのようです。

于 2012-12-20T21:44:56.370 に答える
0

Logcatの出力は、に関連付けられていませんが、コードで使用しpackage nameている文字列に関連付けられていTAGます。すべてのタグを自分のものに変更することも、各行のメッセージにpackage name明示的に自分を追加することもできます。そうすれば、希望する動作が得られます。ただし、実際には@ A--Cの提案を使用します。これにより、特定のクラスの出力のみをよりきめ細かくフィルタリングできるようになります。package nameLog.i/w/e/v()

于 2012-12-20T21:51:07.103 に答える
0

アプリの名前の一部を使用しましたが、"find"基本的case sensitiveにはその特定の出力(名前はパッケージ名に表示されます)のみが表示されたため、次のコマンドを思いつきました。

adb.exe logcat -v time | find "%part_of_my_apps_name%" /I
于 2012-12-21T02:51:42.170 に答える