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