Android - 并非所有日志都出现在logcat输出中

时间:2012-12-20 20:49:06

标签: android debugging android-logcat

我使用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 :我问了一个错误的问题。我实际上使用了部分应用程序的名称,而不是包,所以它必须出现在日志输出中。

3 个答案:

答案 0 :(得分:1)

根据TAG变量的不同,使用命令

adb.exe logcat -s "[tagname]"

例如,如果在我的代码中,我的TAG被声明为:

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

我的LogCat将是

adb.exe logcat -s "com.myapp"

看起来引号也是可选的。

答案 1 :(得分:0)

Logcat输出与package name无关,但与您在代码中使用的字符串TAG无关。您可以将所有代码更改为package name,或者可以将package name明确添加到每个Log.i/w/e/v()行中的邮件中,然后您将获得所需的行为。但是,实际上我会使用@ A - C建议,因为它允许您对特定类的输出进行更细粒度的过滤。

答案 2 :(得分:0)

我使用了应用程序名称的一部分,但是,因为"find"基本上是case sensitive,它确实只显示了特定的输出(名称出现在包名中),所以我想出了以下命令:

adb.exe logcat -v time | find "%part_of_my_apps_name%" /I