Почему logcat игнорирует операторы журнала с тегом "PHONE"? - PullRequest
1 голос
/ 29 января 2012

Я настраивал слушателя на кнопку вызова, и сначала я просто хотел убедиться, что слушатель работает, поэтому я поместил в него оператор журнала.Но по какой-то таинственной причине он отказался печатать, когда я щелкнул по нему!Так что, может быть, кнопка вызова была нулевой, подумал я, и добавил оператор else ... но он не печатал ничего из оператора if или else !!!Он будет печатать операторы до и после, но полностью игнорирует все в структуре if-else.Вот код:

ImageButton call = (ImageButton) v.findViewById(R.id.callButton);

Log.d("MEETINGS", "ABOUT TO WORK W/ CALL");
Log.e("MEETINGS", "" + (call != null));

if (call != null) {
    Log.d("PHONE", "setting stuff on call...");
    call.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        Log.d("PHONE", "on call : " + phone);
        }
    });
} else {
System.out.println("why is this messed up");
Log.d("PHONE", "call button was null!");
}

System.out.println("what the heck is going on");

После не менее 15 минут попыток разгадать загадку о том, как Java может просто решить пропустить оба оператора if и else, я попытался присвоить оператору log другой тег.

И Эврика!Это сделало трюк!Я изменил «ТЕЛЕФОН» на «БЛА», и вдруг мир снова обрел смысл!Любопытно, я изменил его на «телефон», и он отказывается печатать снова.

Мораль истории: никогда не используйте тег «телефон» или «ТЕЛЕФОН» в logcat !!!

Можеткто-то, пожалуйста, объясните мне, как и / или почему logcat игнорирует сообщения с тегом "ТЕЛЕФОН"?

1 Ответ

0 голосов
/ 29 января 2012

См. Документацию для isLoggable () . Я предполагаю, что вывод отладки для тега "PHONE" был отключен на вашем телефоне, чтобы подавить вывод из реального приложения телефона.

Я полагаю, что вы должны иметь возможность запускать "getprop log.tag.PHONE" в оболочке на телефоне, чтобы получить минимальный уровень серьезности, необходимый для печати сообщений с тегом "PHONE".

...