尊旭网
当前位置: 尊旭网 > 知识 >

logcat

时间:2024-03-01 12:21:05 编辑:阿旭

在Android开发中,Logcat是什么?

最后介绍一下Android的Log工具LogCat。
首先在Eclipse中选择Windows > Show View > Other... > Android > LogCat,确定后会出现LogCat显示框,用户添加的Log将会在这里显示。使用时直接在代码中插入“Log.i("info","this is a log");”,那么在执行到该语句时,LogCat显示框中将出现“this is a log”。

在Eclipse中安装ADT和android sdk包之后,运行以开发的android程序时,在LogCat窗口中会显示出一系列的信息,这些信息是每一个程序通过Dalvik虚拟机所传出的实时信息,可以方便我们对程序的了解。
在log窗口中,每条信息都包含五个部分,Time,标题空白,pid,tag和Message。
1、Time
表示执行的时间,这个信息对于学习生命周期,分析程序运行的先后顺序特别有用。
2、标题空白的列

表示的是信息的种类,分为V,D,I,W,E五种。
V:verbose,显示全部信息
D:Debug,显示调试信息
I:Info,显示一般信息
W:Warming,显示警告信息
E:Error,显示错误信息
可以通过点击LogCat上面的用圆圈括起来的V,D,I,W,E来改变显示的范围。比如选择了W,那就只有警告信息和错误信息可以显示出来了。
3、pid
表示程序运行时的进程号
4、tag
标签,通常表示系统中的一些进程名,比如我们运行helloworld程序的话,就会看到activitymanager在运行。
5、Message
表示进程运行时的一些具体信息,比如我们运行helloworld程序的话,就会看到starting activity...helloWorld的字样
可以输出LogCat的信息到文本文件中,以方便分析。在下拉框中选择输出选择的信息就可以了。
下面是输出到文件中的启动helloWorld程序时的一条信息的例子,分别用5个下划线标出了上面介绍的内容:
05-20 15:46:10.129: INFO/ActivityManager(60): Starting activity: Intent { act=android.intent.action.MAIN cat=
[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.android.helloworld/.HelloWorld }
6、Filter的使用
可以在Filter中输入筛选信息,使LogCat中只现实我们需要分析的信息。比如我们只想看和HelloWorld相关的信息,就可以在
Filter中输入HelloWorld,这样只有Message 中包含HelloWorld的内容才会显示出来。
7、LogCat中信息不能显示
上面说了这么多关于logCat的使用,可能LogCat中根本就什么信息都没有显示!没关系,只要在Eclipse中选择window-
>show view->other->android->devices就可以 了。
8、在LogCat中输出程序的运行信息

a、在程序中导入相应的包:import android.util.Log;
b、在需要输出信息的函数中增加相关的调试代码:Log.i("hi world","oncreate");
方法i是Log类的静态方法,可以直接使用,我们看着各类的定义可以看到,它提供了多种输出方法,分别对应我们上面提到的V,D,I,W,E。用哪个方法就决定了输出的类型,这里用i,表示输出的是information。
这个方法中的第一个参数就是要显示在Tag那一栏的内容,把这条语句加到OnCreate方法中,执行时LogCat中就会显示如下的信息: 05-22 21:58:22.894 I 3910 hi world onCreate
9、创建新的Filter

有时候只想看我们程序中用Log类的相关方法输出的各种信息,这时就可以考虑新建一个过滤器。点击LogCat的右上角的“+”号,可以创建一个新的过滤器。比如我们在by Log Tag的选项中填入上面程序输出的"hi world"这个tag。这样再运行时在我们新创建的Filter中就只显示hi world这个tag标记出来的信息了。

Android开发中的logcat工具使用详解--------

logcat是Android中一个命令行工具,可以用于得到程序的log信息。
logcat使用方法如下所示:
logcat [options] [filterspecs]
logcat的选项包括:
-s 设置过滤器,例如指定 '*:s'
-f 输出到文件,默认情况是标准输出。
-r [] Rotate log every kbytes. (16 if unspecified). Requires -f
-n Sets max number of rotated logs to , default 4
-v 设置log的打印格式, 是下面的一种:
brief process tag thread raw time threadtime long

-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b 请求不同的环形缓冲区 ('main' (默认), 'radio', 'events')
-B 输出log到二进制中。

过滤器的格式是一个这样的串:
[:priority]

其中 表示log的component, tag (或者使用 * 表示所有) , priority 如下所示:

V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent


事实上logcat的功能 是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:
Log.v() -------------------- VERBOSE
Log.d() -------------------- DEBUG
Log.i() -------------------- INFO
Log.w() -------------------- WARN
Log.e() -------------------- ERROR
以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。

对于JAVA类,可以声明一个字符串常量TAG,Logcat可以根据他来区分不同的log,例如在计算器(Calculator)的类中,定义如下所示:

public class Calculator extends Activity {
/* ...... */
private static final String LOG_TAG = "Calculator";
private static final boolean DEBUG = false;
private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV;
/* ...... */
由此,所有在Calculator中使用的log,均以"Calculator"为开头。

例如使用方法如下所示:
# logcat &

W/KeyCharacterMap( 130): No keyboard for id 0
W/KeyCharacterMap( 130): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
I/ActivityManager( 52): Displayed activity com.android.contacts/.DialtactsContactsEntryActivity: 983 ms
I/ARMAsse mbler( 52): generated scanline__00000077:03545404_00000A04_00000000 [ 29 ipp] (51 ins) at [0x25c978:0x25ca44] in 1764174 ns
I/ARMAssembler( 52): generated scanline__00000077:03515104_00000001_00000000 [ 46 ipp] (65 ins) at [0x25d1c8:0x25d2cc] in 776789 ns
D / dalvikvm ( 130 ): GC freed 834 objects / 81760 bytes in 63ms
D/dalvikvm( 52): GC freed 10588 objects / 425776 bytes in 94ms

其中W/I/D 表示log的级别,“dalvikvm ”“ARMAssembler ”等是不同组件(component)的名称,后面括号里面的数字 表示了发出log的进程号。

使用技巧:
1.使用logcat &在后台运行
2.使用-d得到所有log
3.使用-f或者重定向(>和>>)输出到文件
4.使用-s设置过滤器,得到想要的log。

当然,最重要的还是在程序中加入恰当的log.

许多初次接触Android开发的朋友会遇到调试的问题,如何能够根据错误提示迅速的找到“出事地点呢”?在Eclipse+ADT的开发环境中没有好的直接跟踪对象内容的方法,通过使用android.util.Log类可以帮助你自己查找错误和打印系统日志消息。它是一个进行日志输出的API,我们在Android 程序中可以随时为某一个对象插入一个Log,然后在DDMS中观察Logcat的输出是否正常。
android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。当我们在DDMS进行调试时他们的区别并不大,只是显示的颜色不同,但通过Logcat的过滤器我们可以过滤显示某类的,一般对于执行错误的断点,下在Log.e比较合适。但是Android开发网根据规范建议VERBOSE,DEBUG信息应当只存在于开发中,最终版本只可以包含 INFO, WARN,ERROR这三种日志信息。在实际使用中,我们最好为每一个类声明一个字符串常量TAG,这样在Logcat中我们可以容易区分不同的类的日志。例如:
private static final String TAG = "MyActivity";
接下来我们就可以用Log随心所欲的观察Android代码中的每个细节:Log.e(TAG, "android123.com.cn"); 但是要记住这个Log类的参数都是String类型的。


如何使用安卓的logcat

1,开发方式,在eclipse中的windows中的showView中的other,然后,打开other对话框,选择android中,找到logcat即可。在状态栏或者右侧可以找到logcat的图标。2,使用方法,可以使用Log.i("exp",e.toString());这样的方式来给自己的应用大bug信息。3,然后,查看logcat中的tag,和text描述。就可以查看到错误产生的原因了。4,当然这只是最简单的使用,一般调试信息非常的多,我们可能只是希望看到我们想看到信息,这个时候,可以使用filter过滤一下信息。选择logcat的组面板上的+信息。5,在这里我们可以对于tag赋值,然后查看使用到的log信息,这样过滤到的信息,就是你正在调试的信息。


Android中怎么控制LogCat的自定义输出

你好!首先log有很多类型
log.v(String tag,String msg); // 冗余消息
log.d(String tag,String msg); // 调试消息
log.i(String tag,String msg); // 普通消息
log.w(String tag,String msg); //警告消息
log.e(String tag,String msg); // 错误消息
关于您说的建立一个log的tag,可用如下语句来实现
private static final String TAG="此处写您要设置的tag"

然后再程序中我一般用的是Log.v(TAG,"想打印的信息")
这样的话,在logcat中就可以显示出自定义的TAG


android 如何用cmd方法查看logcat呀

使用cmd命令查看logcat使用adb logcat命令可查看android系统和应用的logadb logcat //显示全部日志adb logcat > c:\test.log //将日志输出保存到文件test.loglogcat日志中的优先级/tag标记:android输出的每一条日志都有一个标记和优先级与其关联。优先级是下面的字符,顺序是从低到高:V — 明细 verbose(最低优先级)D — 调试 debugI — 信息 infoW — 警告 warnE — 错误 errorF — 严重错误 fatalS — 无记载 silent标记是一个简短的字符串,用于标识原始消息的来源。如下是一个日志输出的消息,优先级是“D”,标记是“PowerManagerService”:D/PowerManagerService( 305): onSensorChanged: light value: 306.0可根据tag标记和级别过滤日志输出:仅输出标记为“ActivityManager”且优先级大于等于“Info”和标记为“PowerManagerService”并且优先级大于等于“Debug”的日志:adb logcat ActivityManager:I PowerManagerService:D *:S注:*:S用于设置所有标记的日志优先级为S,这样可以确保仅输出符合条件的日志。adb logcat *:W //显示所有优先级大于等于“warning”的日志adb logcat -s PowerManagerService //显示PowerManagerService的日志信息Logcat命令列表:-d 将日志显示在控制台后退出-c 清理已存在的日志-f 将日志输出到文件adb logcat -f /sdcard/test.txt-v 设置日志输入格式控制输出字段,默认的是brief格式brief — 显示优先级/标记和原始进程的PID (默认格式)process — 仅显示进程PIDtag — 仅显示优先级/标记thread — 仅显示进程:线程和优先级/标记raw — 显示原始的日志信息,没有其他的元数据字段time — 显示日期,调用时间,优先级/标记,PIDlong —显示所有的元数据字段并且用空行分隔消息内容adb logcat -v thread //使用 thread 输出格式注意-v 选项中只能指定一种格式。-b 加载一个可使用的日志缓冲区供查看,默认值是main。radio — 查看包含在无线/电话相关的缓冲区消息events — 查看事件相关的消息main — 查看主缓冲区 (默认缓冲区)adb logcat -b radio //查看radio缓冲区

如何使用android中的logcat调试程序

Android开发中,所的有输出都在logcat中 包含System.out输出和printStackTrace()输出都在Logcat中,Android开发,建议使用android提供的Log工具类来打印信息。
找到Logcat视图的方式:
Eclipse 点击 Window
Show View会出来一个对话框
点击Ok按钮时,会在控制台窗口出现LogCat视窗

android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。
1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");
2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.
3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息
4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。
5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要认真的分析,查看栈的信息了。


eclipse上的logcat打印出很多的无用信息如何设置

eclipse android logcat只显示自己应用程序信息的设置方法1.在Devices中选中自己的app包名,然后切换到Logcat选项卡中就能看到Saved Filters中出现自己的包名了。2.如果还是不起作用的话,需要强制让他显示出用户自己的包名。在Logcat选项卡中就能看到Saved Filters处点击那个绿色的加号+,然后看改成如下截图:(把下图中的包名换成你app的包名即可)

  • 上一篇:lock lock
  • 下一篇:没有了