Android SDK下, 如何在程序中输出日志以及如何查看日志.
Android SDK下, 如何在程序中输出日志 以及如何查看日志.
闲话少说,直接进入正题
在程序中输出日志, 使用 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是一个标识,可以是任意字符串,通常可以使用类名+方法名, 主要是用来在查看日志时提供一个筛选条件.
程序运行后 并不会在 ide的控制台内输出任何信息.
如果要后查看日志 请使用
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;
}
}
}
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的参数说明,这个说明比较难找 我是无意间发现的
adb logcat .....
Java代码
Usage: logcat [options] [filterspecs]
options include:
-s Set default filter to silent.
Like specifying filterspec '*:s'
-f <filename> Log to file. Default to stdout
-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> Sets the log print format, where <format> is one of:
brief process tag thread raw time long
-c clear (flush) the entire log and exit
-d dump the log and then exit (don't block)
-g get the size of the log's ring buffer and exit
-b <buffer> request alternate ring buffer, defaults to 'main'
filterspecs are a series of
<tag>[:priority]
where <tag> is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
'*' means '*:d' and <tag> by itself means <tag>:v
If not specified on the commandline, filterspec is set from ANDROID_LOG_TAG
If no filterspec is found, filter defaults to '*:I'
If not specified with -v, format is set from ANDROID_PRINTF_LOG
or defaults to "brief"
文章导读
游戏推荐
- 热门
- 最新
会说话的狗狗本 Talking Be 会说话的狗狗本是会说话系列中的一款,知名度应该是仅次于会...
查看详情
弗拉特潜水 Flutty Diver vFlutty Diver(弗拉特潜水)是一款非常可爱的益智游戏,这是安卓...
查看详情
太空披萨 Space Pizza DeliSpace Pizza Delivery(太空披萨)是一款较为简单的跳跃类的小...
查看详情
人类:历史 Person: The HisPerson: The History(人类:历史)是一款画面非常单调的游戏,灰...
查看详情
会说话的狗狗本 Talking Be 会说话的狗狗本是会说话系列中的一款,知名度应该是仅次于会...
查看详情
弗拉特潜水 Flutty Diver vFlutty Diver(弗拉特潜水)是一款非常可爱的益智游戏,这是安卓...
查看详情
太空披萨 Space Pizza DeliSpace Pizza Delivery(太空披萨)是一款较为简单的跳跃类的小...
查看详情
人类:历史 Person: The HisPerson: The History(人类:历史)是一款画面非常单调的游戏,灰...
查看详情
软件推荐
- 热门
- 最新
海豚浏览器 v8.0今天,国产手机浏览器知名品牌海豚浏览器发布了它的一个最新...
查看详情
应用魔方 AppShare v2.4.3AppShare(应用魔方)是一款比较具有人气的安卓手机应用,它能够...
查看详情
超频软件 Voltage Control Voltage Control Extreme是安卓平台一款非常受欢迎的CPU超...
查看详情
音频管理器 AudioManager P音频管理器 (AudioManager Pro)的功能不错,能够方便你控制安卓...
查看详情
土司 v1.0土司是一款在线交流与分享软件,能够让你DIY自己的手机社区,你...
查看详情
海豚浏览器 v8.0今天,国产手机浏览器知名品牌海豚浏览器发布了它的一个最新...
查看详情
迈播 v2.0.1.0215迈播是由迈视网(www.maxtv.cn)开发的一款免费的手机视频应用,...
查看详情
应用魔方 AppShare v2.4.3AppShare(应用魔方)是一款比较具有人气的安卓手机应用,它能够...
查看详情
推荐文章
- 新闻
- 评测
- 教程

