- 浏览: 381625 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
lingmzai:
你好,有两个问题请教:1. convert命令能将png格式转 ...
Linux之convert命令 -
ykb19891230:
...
将源码项目工程引入eclipse,并在linux下编译源码 -
spdx4046:
我发现用数组和不用数组的差别很大很大哎!
比如: ...
ByteBuffer笔记 -
JavaJ2me:
谢谢,,结构分析的很细,,public Object Load ...
Java中的反射机制 -
zhucezhenmafan:
好用!
解决adb shell 找不到设备的问题
一个android应用程序运行后 并不会在 ide的控制台内输出任何信息. 不能在控制台输出。但是android提供的Log类。
在程序中输出日志, 使用 android.util.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);
分别对应 Verbose, Debug, Info, Warning,Error.
tag是一个标识,可以是任意字符串,通常可以使用类名+方法名, 主要是用来在查看日志时提供一个筛选条件.
如果要后查看日志 请使用
adb logcat
关于adb的更多信息请查看官方网站.
当执行 adb logcat 后会以tail方式实时显示出所有的日志信息.
这时候我们通常需要对信息进行过滤,来显示我们需要的信息, 这时候我们指定的 tag就派上了用场.
adb logcat -s MyAndroid:I
这时将只显示tag为MyAndroid,级别为I或级别高于I(Warning,Error)的日志信息.
示例代码如下:
Java代码
package com.zijun;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class MyAndroid extends Activity {
protected static final String ACTIVITY_TAG="MyAndroid";
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(new MyView(this));
}
public class MyView extends View {
public MyView(Context c) {
super(c);
}
@Override
protected void onDraw(Canvas canvas) {
}
@Override
public boolean onMotionEvent(MotionEvent event) {
Log.i(MyAndroid.ACTIVITY_TAG, "=============================");
Log.d(MyAndroid.ACTIVITY_TAG, "Haha , this is a DEBUG of MyAndroid. ");
Log.i(MyAndroid.ACTIVITY_TAG, "Haha , this is a INFO of MyAndroid. ");
Log.w(MyAndroid.ACTIVITY_TAG, "Haha , this is a WARNING of MyAndroid. ");
return true;
}
}
}
以上程序运行后, 在命令行执行 adb logcat -s MyAndroid:I
然后在手机模拟器的屏幕上 点击 拖动鼠标 就能看到相应的日志信息.
logcat是Android中一个命令行工具,可以用于得到程序的log信息。
logcat使用方法如下所示:
logcat [options] [filterspecs]
logcat的选项包括:
-s 设置过滤器,例如指定 '*:s'
-f <filename> 输出到文件,默认情况是标准输出。
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> 设置log的打印格式, <format> 是下面的一种:
brief process tag thread raw time threadtime long
-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b <buffer> 请求不同的环形缓冲区 ('main' (默认), 'radio', 'events')
-B 输出log到二进制中。
过滤器的格式是一个这样的串:
<tag>[:priority]
其中 <tag> 表示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 &
< 得到一个log片段 >
W/KeyCharacterMap( 130): No keyboard for id 0
W/KeyCharacterMap( 130): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
I/ActivityManager( 52): Displayed activitycom.android.contacts/.DialtactsContactsEntryActivity: 983 ms
I/ARMAssembler( 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.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/setsuna_L_seiei/archive/2010/01/19/5206232.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/alley_zhang/archive/2010/07/05/5713894.aspx
在程序中输出日志, 使用 android.util.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);
分别对应 Verbose, Debug, Info, Warning,Error.
tag是一个标识,可以是任意字符串,通常可以使用类名+方法名, 主要是用来在查看日志时提供一个筛选条件.
如果要后查看日志 请使用
adb logcat
关于adb的更多信息请查看官方网站.
当执行 adb logcat 后会以tail方式实时显示出所有的日志信息.
这时候我们通常需要对信息进行过滤,来显示我们需要的信息, 这时候我们指定的 tag就派上了用场.
adb logcat -s MyAndroid:I
这时将只显示tag为MyAndroid,级别为I或级别高于I(Warning,Error)的日志信息.
示例代码如下:
Java代码
package com.zijun;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
public class MyAndroid extends Activity {
protected static final String ACTIVITY_TAG="MyAndroid";
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(new MyView(this));
}
public class MyView extends View {
public MyView(Context c) {
super(c);
}
@Override
protected void onDraw(Canvas canvas) {
}
@Override
public boolean onMotionEvent(MotionEvent event) {
Log.i(MyAndroid.ACTIVITY_TAG, "=============================");
Log.d(MyAndroid.ACTIVITY_TAG, "Haha , this is a DEBUG of MyAndroid. ");
Log.i(MyAndroid.ACTIVITY_TAG, "Haha , this is a INFO of MyAndroid. ");
Log.w(MyAndroid.ACTIVITY_TAG, "Haha , this is a WARNING of MyAndroid. ");
return true;
}
}
}
以上程序运行后, 在命令行执行 adb logcat -s MyAndroid:I
然后在手机模拟器的屏幕上 点击 拖动鼠标 就能看到相应的日志信息.
logcat是Android中一个命令行工具,可以用于得到程序的log信息。
logcat使用方法如下所示:
logcat [options] [filterspecs]
logcat的选项包括:
-s 设置过滤器,例如指定 '*:s'
-f <filename> 输出到文件,默认情况是标准输出。
-r [<kbytes>] Rotate log every kbytes. (16 if unspecified). Requires -f
-n <count> Sets max number of rotated logs to <count>, default 4
-v <format> 设置log的打印格式, <format> 是下面的一种:
brief process tag thread raw time threadtime long
-c 清除所有log并退出
-d 得到所有log并退出 (不阻塞)
-g 得到环形缓冲区的大小并退出
-b <buffer> 请求不同的环形缓冲区 ('main' (默认), 'radio', 'events')
-B 输出log到二进制中。
过滤器的格式是一个这样的串:
<tag>[:priority]
其中 <tag> 表示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 &
< 得到一个log片段 >
W/KeyCharacterMap( 130): No keyboard for id 0
W/KeyCharacterMap( 130): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
I/ActivityManager( 52): Displayed activitycom.android.contacts/.DialtactsContactsEntryActivity: 983 ms
I/ARMAssembler( 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.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/setsuna_L_seiei/archive/2010/01/19/5206232.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/alley_zhang/archive/2010/07/05/5713894.aspx
发表评论
-
解决32位Linux找不到adb
2012-08-18 15:30 1514sudo apt-get install ia32-libs -
Code Review中的几个提示
2012-06-11 13:18 1228$转载$ 作者:陈皓 Code Review应该是软件工程 ... -
Android 远程Debug的方法和步骤
2012-04-10 10:40 13501.连接上设备后,打开要debug的应用,打开DDMS,在De ... -
Android中的那些sql语句
2012-02-29 14:30 1312Uri baseUri; if (mC ... -
Ubuntu10.10搭建Android开发环境
2012-01-13 10:39 1233Installing the JDK The Sun JDK ... -
最近习惯用txt写日志了,呵呵
2011-07-20 23:00 122好长时间不怎么来,javaeye变化挺大啊 -
ServiceConnection
2011-06-17 17:46 1863ServiceConnection android.cont ... -
Android之Intent
2011-06-16 23:51 1028Intent 1.构造方法 1.Intent(Contex ... -
requestWindowFeature
2011-04-12 14:35 1229一、枚举常量 1.DEFAULT_FEATURES:系统默认 ... -
32位机器Ubuntu系统编译2.2以上源码(默认需要64位机)
2011-04-11 11:44 1423默认下载下来的froyo2.2版本代码,是64位配置的。需要稍 ... -
Android的多分辨率支持
2011-03-28 17:02 2710在设计之初,Android系统 ... -
得到Android系统预置软件的apk!
2011-02-25 16:39 1326先 adb shell 再 cd /system/app 就看 ... -
android图片资源转换
2011-02-18 10:14 1824android在处理一写图片资源的时候,会进行一些类型的转换, ... -
代码3
2011-02-11 16:13 1120ArrayList<ColumnInfo> ... -
Android之IntentService
2011-02-09 17:29 1653参考:http://www.wheremylife.com/h ... -
Android之Animation
2011-02-09 15:02 885先小参考下别人的http://blog.sina.com.cn ... -
代码2
2011-02-09 10:55 1501public abstract void onItemClic ... -
Android VS iOS:2011年的死亡竞技赛
2011-01-28 14:54 1009Android和iOS之间的竞争在 ... -
Android 权限列表permission说明
2011-01-20 15:26 1813public static final String B ... -
Windows下git下载Android源码
2011-01-16 20:06 22991.到这里先下载cygwin,http://www.cygwi ...
相关推荐
android自定义log日志输出工具,该工具类具有以下优点: 1 在LogUtlis方法的第一个参数中填this可以输出当前类的名称,特别是在匿名内部类使用也可以输出当前类名。 如 : LogUtils.i(this,”这是一个实用的日志...
Java项目下用的一个实现了类似Android下Log类。Android向Java学习的同学习惯的Log.i()用法
首先,Android系统的Log类位于`android.util`包下,提供了`d()`, `v()`, `i()`, `w()`, `e()`等方法,分别对应DEBUG、VERBOSE、INFO、WARN和ERROR五个级别。这些方法接受标签(tag)和消息(message)作为参数,用于...
Java项目下用的一个实现了类似Android下Log类。Android向Java学习的同学习惯的Log.i()用法 追加了一些扩展类 可满足日志分析需求
Android系统自带的Log工具提供了基本的日志输出功能,包括`Log.v()`(verbose)、`Log.d()`(debug)、`Log.i()`(info)、`Log.w()`(warn)、`Log.e()`(error)等方法,但它们默认并不显示行号。在复杂项目中,...
android 下方便的打印log 在sd上写入log
开发者可以通过`Log`类提供的静态方法(如`Log.d()`, `Log.i()`, `Log.w()`, `Log.e()`等)来输出不同级别的LOG,便于分析程序状态和追踪问题。然而,系统默认的LOG打印方式可能无法满足所有开发者的需求,因此出现...
Android平台为开发者提供了一套轻量级的日志(Log)管理机制。这套机制不仅贯穿于Java层、JNI层、C/C++层乃至Linux内核层等多个层面,而且其实现逻辑清晰明了,非常适合深入研究和学习。本文将详细探讨Android中Log的...
android.util.Log is the most usable library of the Android. But, when the app released on the market, some important information is clearly forgotten by the developer. All logs are disabled by Debug...
Log4a is an mmap based, high-performance, highly available Android log collection framework | Log4a 是一个基于 mmap, 高性能、高可用的 Android 日志收集框架
Android系统提供了一个内置的日志框架,允许开发者通过`Log`类输出不同级别的日志信息,如`VERBOSE`、`DEBUG`、`INFO`、`WARN`、`ERROR`和`ASSERT`。这些级别由低到高,通常在开发阶段使用较高的日志级别,发布时则...
Android系统提供了`android.util.Log`类,提供了多种级别的日志输出方法,包括`Log.v()`, `Log.d()`, `Log.i()`, `Log.w()`, 和 `Log.e()`。 1. `Log.v(String tag, String msg)`:VERBOSE级别,输出最为详细的信息...
在Android环境中,由于系统默认的日志记录器(Logcat)有一些限制,如日志长度、级别控制等,因此,引入log4j可以提供更高级别的控制和定制能力。 1. **集成log4j到Android项目** 要在Android项目中使用log4j,...
标题"Android-AndroidLog日志打印输出到文件方便查看和上传到服务器"所描述的,就是一种将Android应用的日志信息写入到本地文件的方法,以便后续分析或上传到远程服务器。这个方法能够帮助开发者在无法直接访问设备...
`AndroidLog工具`是为了提供比标准Android `Log`类更为实用的功能而设计的。标题中的"1个类,100个方法、9 KiB"表明这是一个轻量级且功能丰富的库,旨在提高开发效率。 这个工具可能包含了以下特性: 1. **多级别...
Log4j是一个广泛使用的Java日志框架,它提供了强大的日志处理功能,包括日志级别控制、自定义日志格式、多路复用等。然而,由于Android系统对第三方库的限制,直接在Android工程中使用Log4j需要一些额外的步骤。本文...
android-log power 各包电量分析
Log4Android是基于Apache Log4j理念设计的一个Android日志框架,它提供了丰富的日志级别(如DEBUG、INFO、WARN、ERROR等)和灵活的日志配置,使开发者能够更精确地控制日志输出,同时提高日志记录的效率。...
* 自定义Log打印类 * 在打印给定字符的同时,还打印出所在语句的方法名、行号、类名,甚至详细调用栈等信息 * 可通过DEBUG控制是否打印 * 可通过POSITION控制是否打印所在语句信息