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错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息
在android代码的每个Activity,都不厌其烦的写:
private static final String TAG = "MyActivity";
然后需要打印的地方输入:
Log.v(TAG, "index=" + i);
写太多的TAG,也麻烦,如果不写TAG,用 this.toString() 也可行,不过还是一样,下面是一个包装的Log类,自动处理是哪个Activity,调用哪个函数,如下:
/*
* Copyright (C) 2010 Lytsing Huang http://lytsing.org
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lytsing.android.util;
/**
* Wrapper API for sending log output.
*/
public class Log {
protected static final String TAG = "MyApplication";
public Log() {
}
/**
* Send a VERBOSE log message.
* @param msg The message you would like logged.
*/
public static void v(String msg) {
android.util.Log.v(TAG, buildMessage(msg));
}
/**
* Send a VERBOSE log message and log the exception.
* @param msg The message you would like logged.
* @param thr An exception to log
*/
public static void v(String msg, Throwable thr) {
android.util.Log.v(TAG, buildMessage(msg), thr);
}
/**
* Send a DEBUG log message.
* @param msg
*/
public static void d(String msg) {
android.util.Log.d(TAG, buildMessage(msg));
}
/**
* Send a DEBUG log message and log the exception.
* @param msg The message you would like logged.
* @param tr An exception to log
*/
public static void d(String msg, Throwable thr) {
android.util.Log.d(TAG, buildMessage(msg), thr);
}
/**
* Send an INFO log message.
* @param msg The message you would like logged.
*/
public static void i(String msg) {
android.util.Log.i(TAG, buildMessage(msg));
}
/**
* Send a INFO log message and log the exception.
* @param msg The message you would like logged.
* @param thr An exception to log
*/
public static void i(String msg, Throwable thr) {
android.util.Log.i(TAG, buildMessage(msg), thr);
}
/**
* Send an ERROR log message.
* @param msg The message you would like logged.
*/
public static void e(String msg) {
android.util.Log.e(TAG, buildMessage(msg));
}
/**
* Send a WARN log message
* @param msg The message you would like logged.
*/
public static void w(String msg) {
android.util.Log.w(TAG, buildMessage(msg));
}
/**
* Send a WARN log message and log the exception.
* @param msg The message you would like logged.
* @param thr An exception to log
*/
public static void w(String msg, Throwable thr) {
android.util.Log.w(TAG, buildMessage(msg), thr);
}
/**
* Send an empty WARN log message and log the exception.
* @param thr An exception to log
*/
public static void w(Throwable thr) {
android.util.Log.w(TAG, buildMessage(""), thr);
}
/**
* Send an ERROR log message and log the exception.
* @param msg The message you would like logged.
* @param thr An exception to log
*/
public static void e(String msg, Throwable thr) {
android.util.Log.e(TAG, buildMessage(msg), thr);
}
/**
* Building Message
* @param msg The message you would like logged.
* @return Message String
*/
protected static String buildMessage(String msg) {
StackTraceElement caller = new Throwable().fillInStackTrace().getStackTrace()[2];
return new StringBuilder()
.append(caller.getClassName())
.append(".")
.append(caller.getMethodName())
.append("(): ")
.append(msg).toString();
}
}
使用demo:
LogDemo.java:
package org.lytsing.android.log;
import org.lytsing.android.util.Log;
import android.app.Activity;
import android.os.Bundle;
public class LogDemo extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("index=" + 3);
}
}