Android之LogCat

在Android项目中不能用System.out.println(……)调试,因为Android不是运行在一个普通JVM虚拟机上,而是在DalvikVM虚拟机的模拟硬件中运行。

虽然,也可以使用System.out.println(……)输出信息,但它输出的信息只能作为一般信息输出,没有任何特征。还好Android SDK提供了许多强劲的调试特性–LogCat。

LogCat是DDMS(Dalvik调试监视器服务)的重要组成部分。它提供了收集和查看系统调试输出的机制。在LogCat中可以过滤输出的日志信息,这样可以查看到任何想要查看的日志信息。LogCat将日志分为V(Verbose)、D(Debug)、I(Info)、W(Warning)、E(Error)五个等级,其中V等级最低,E的等级最高。Verbose等级将输出所有日志,包括模拟器的任何操作都会有日志输出。

如果你是使用Eclipse+ADT开发Android应用,则可以在DDMS视图(Window->Open Perspective->DDMS或Window->Open Perspective->Other…->DDMS)中查看LogCat的输出信息。在LogCat输出中,我们能通过点击LogCat视图标签栏的”V- D – I – W – E”按钮,以优先级为条件来简单的过滤日志信息。而且你还可以自定义LogCat的日志等级,这个特性会使你喜欢上ADT插件。

如果想在JAVA代码中定制LogCat日志输出(即自定义的调试信息),也非常简单。

首先导入LogCat包:

1
import android.util.Log;

接着你就可以使用LogCat输出自己的调试信息:

1
2
3
4
5
// 输出D等级的日志
Log.d("DEBUGTAG" , "My debug-message");
 
// 输出E等级的日志
Log.e("ErrorTAG" , "My debug-message");

其它等级的日志信息输出依次类推即可,你可以查看Log类的源代码来了解LogCat的用法。Log.e等方法的第一个参数是一个Tag标签,你可以为它自定义一个醒目的Tag。

你还可以将LogCat用到异常处理中:

1
2
3
4
5
6
7
Button b = (Button) this.findViewById(R.id.btn_open_search);
try{
  throw new Exception();
}catch (Exception e) {
  Log.e("throw e", Integer.toString(R.id.btn_search));
  System.out.println("test:println" + R.id.btn_search);
}

更强大的是,Android可以像普通Java项目一样,支持断点调试!

Monitor Your Web Site 24/7 - Receive email and SMS alerts anytime your web site goes down.

Related Posts

Leave a Reply

Monitor Your Web Site 24/7 - Receive email and SMS alerts anytime your web site goes down.

About Me

About Me
Record Technical Articles at Gooss.org.

Entries (RSS) and Comments (RSS). Valid XHTML and CSS and XFN.

© Copyright 2009 山海经. All rights reserved.

Social Bookmarks

Copyright © Designed by: Free WP Templates
Food Charts |  About Breast Milk |  Organic Food