您的位置:首页 > 移动开发 > Android开发

一个封装 android.util.Log 的Log类

2014-11-19 16:23 423 查看
在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();
}
}


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);
}
}


运行结果的Log信息,如下图:





需要的话,懒得复制粘贴,可以下载Log.java压缩文件包Log.tar.gz

此外Android 代码风格指南 特别说明了,日志记录开销很大,应尽量少用,写规范可靠的代码,减少对debug的依赖。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: