2012-01-28 67 views
1

我在呼叫按钮上设置了一个监听器,起初我只是想确保监听器正在工作,所以我在其中放置了一条日志声明。但出于某种神秘的原因,当我点击它时,它拒绝打印!所以也许呼叫按钮是空的,我想,并添加了一个else语句...但它没有打印任何if或else语句!它会打印前后的语句,但完全忽略if-else结构中的所有内容。下面的代码:为什么logcat忽略标记为“PHONE”的日志语句?

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怎么可能只决定了二者如果和其他人,我试着给日志语句不同的标签来跳过谜后。

和尤里卡!这就是诀窍!我把“PHONE”改成了“BLAH”,突然间世界变得有意义了!好奇,我把它改成了“电话”,它拒绝再次打印。

道德故事:从未在logcat中使用标签“phone”或“PHONE”!

有人可以向我解释如何和/或为什么logcat忽略标记为“PHONE”的消息?

+0

感谢您分享您的建议。 – anticafe 2012-01-28 23:14:18

回答

0

请参阅isLoggable()的文档。我猜测你的手机上禁用了“PHONE”标签的调试输出,以阻止实际电话应用程序的输出。

我相信你应该可以在手机的shell中运行“getprop log.tag.PHONE”来检索打印标记为“PHONE”的邮件所需的最低严重等级。