我正在使用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