一个封装 android.util.Log 的Log类
2014-11-19 16:23
423 查看
在android代码的每个Activity,都不厌其烦的写:
然后需要打印的地方输入:
写太多的TAG,也麻烦,如果不写TAG,用 this.toString() 也可行,不过还是一样,于是写个包装Log类,自动处理是哪个Activity,调用哪个函数,如下:
LogDemo.java:
运行结果的Log信息,如下图:
需要的话,懒得复制粘贴,可以下载Log.java压缩文件包Log.tar.gz
此外Android 代码风格指南 特别说明了,日志记录开销很大,应尽量少用,写规范可靠的代码,减少对debug的依赖。
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的依赖。
相关文章推荐
- Android关于Log的一个简单封装
- 【Android】封装一个简单好用的打印Log的工具类
- 我的Android进阶之旅------>Android关于Log的一个简单封装
- 我的Android进阶之旅------>Android关于Log的一个简单封装
- 一个介绍android 的log的一些进一步封装与快捷操作的文章
- 【Android】封装一个简单好用的打印Log的工具类
- Android.util.Log
- Android入门:封装一个HTTP请求的辅助类
- Android Log日志的封装类,显示类名以及行号,快速定位
- 实用的Log打印类封装,助尼快速定位源码(android)
- 我自己用的Android-Log封装,功能算好用吧...
- 实用的Log打印类封装,助尼快速定位源码(android)
- android 编译环境下mk.log是编译环境中的一个log
- android 简单实用的Log打印类封装,助你快速定位问题
- android 简单实用的Log打印类封装,助你快速定位问题
- android.util.Log图文详解
- android.util.log 使用的方法
- android.util.Log常用的方法
- 封装的一个android底部操作弹出窗
- Android Log日志的封装类,显示类名以及行号,快速定位