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

取决于您的TAG变量,您使用命令

adb.exe logcat -s "[tagname]"

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

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

我的logcat是

adb.exe logcat -s "com.myapp"

看来引号是可选的。

logcat输出与package name不关联,而与您在代码中使用的字符串TAG相关联。您可以将所有标签更改为package name,也可以将package name明确添加到每条Log.i/w/e/v()行中的消息中,然后您将获得所需的行为。但是,我实际上会使用 @a-c建议,因为它允许您仅对特定类的输出进行更多的详细过滤。

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

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

最新更新