`
wcgdonot
  • 浏览: 92091 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android log简化

阅读更多
package com.yjtc.everhomes.services.util;

import android.util.Log;

/**
*
* Logging: Log simple strings or formatted strings in one simple call:
*
* final String formattedTestString = "first argument = %s, second argument = %s";
* final String firstArgument = "abc";
* final Object secondArgument = new Object() {
* public String toString() {
* return "123";
* };
* };
*
* L.d(formattedTestString, firstArgument, secondArgument);
* Which results in a log output 09-23 17:41:30.508: D/TestActivity:26(18510): onCreate(): first argument = abc, second argument = 123
*
* Convenience class for logging. Logs the given parameters plus the calling class and line as a tag and the calling method's name
*/
public class L {
	private static final boolean DEBUG = true;
	
	public static void v(Throwable t) {
		log(Log.VERBOSE, t, null);
	}
	 
	public static void v(Object s1, Object... args) {
		log(Log.VERBOSE, null, s1, args);
	}
	 
	public static void v(Throwable t, Object s1, Object... args) {
		log(Log.VERBOSE, t, s1, args);
	}
	 
	public static void d(Throwable t) {
		log(Log.DEBUG, t, null);
	}
	 
	public static void d(Object s1, Object... args) {
		log(Log.DEBUG, null, s1, args);
	}
	 
	public static void d(Throwable t, Object s1, Object... args) {
		log(Log.DEBUG, t, s1, args);
	}
	 
	public static void i(Throwable t) {
		log(Log.INFO, t, null);
	}
	 
	public static void i(Object s1, Object... args) {
		log(Log.INFO, null, s1, args);
	}
	 
	public static void i(Throwable t, Object s1, Object... args) {
		log(Log.INFO, t, s1, args);
	}
	 
	public static void w(Throwable t) {
		log(Log.WARN, t, null);
	}
	 
	public static void w(Object s1, Object... args) {
		log(Log.WARN, null, s1, args);
	}
	 
	public static void w(Throwable t, Object s1, Object... args) {
		log(Log.WARN, t, s1, args);
	}
	 
	public static void e(Throwable t) {
		log(Log.ERROR, t, null);
	}
	 
	public static void e(Object s1, Object... args) {
		log(Log.ERROR, null, s1, args);
	}
	 
	public static void e(Throwable t, Object s1, Object... args) {
		log(Log.ERROR, t, s1, args);
	}
	 
	private static void log(final int pType, 
			final Throwable t, 
			final Object s1,
			final Object... args) {
		
		if (pType == Log.ERROR || DEBUG) {
			final StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[4];
			 
			final String fullClassName = stackTraceElement.getClassName();
			final String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
			final int lineNumber = stackTraceElement.getLineNumber();
			final String method = stackTraceElement.getMethodName();
			 
			final String tag = className + ":" + lineNumber;
			 
			final StringBuilder stringBuilder = new StringBuilder();
			stringBuilder.append(method);
			stringBuilder.append("(): ");
			 
			if (s1 != null) {
				final String message = (args == null) ? s1.toString() : String.format((String) s1, args);
				stringBuilder.append(message);
			}
			 
			switch (pType) {
				case Log.VERBOSE:
					if (t != null) {
						Log.v(tag, stringBuilder.toString(), t);
					} else {
						Log.v(tag, stringBuilder.toString());
					}
					break;
			 
				case Log.DEBUG:
					if (t != null) {
						Log.d(tag, stringBuilder.toString(), t);
					} else {
						Log.d(tag, stringBuilder.toString());
					}
					break;
			 
			case Log.INFO:
					if (t != null) {
						Log.i(tag, stringBuilder.toString(), t);
					} else {
						Log.i(tag, stringBuilder.toString());
					}
					break;
			 
			case Log.WARN:
				if (t != null) {
					Log.w(tag, stringBuilder.toString(), t);
				} else {
					Log.w(tag, stringBuilder.toString());
				}
				break;
			 
			case Log.ERROR:
				if (t != null) {
					Log.e(tag, stringBuilder.toString(), t);
				} else {
					Log.e(tag, stringBuilder.toString());
				}
				break;
			}
		}
	}
	
	public static void i() {
		i("....");
	}
	
	public static void d() {
		d("....");
	}
	
	public static void e() {
		e("....");
	}
	
	public static void v() {
		v("....");
	}
	
	public static void w() {
		w("....");
	}
}

 

分享到:
评论

相关推荐

    Android-一个精简全面方便的AndroidLog库--ALog

    ALog库简化了日志输出的API,提供了一组简洁明了的方法,如`ALog.d()`, `ALog.i()`, `ALog.w()`, `ALog.e()`等,对应于Android原生Log类的DEBUG、INFO、WARN和ERROR级别。这使得开发者可以快速进行日志记录,同时...

    QtAdb_Android Log查看工具

    QtAdb是一款便捷的Android日志查看工具,它旨在简化Android设备或模拟器上的Logcat日志抓取和分析过程。通过使用`adb logcat > a.log`命令,开发者可以将设备的Logcat输出保存到文本文件中,然后利用QtAdb进行查看和...

    Log4Android2PCv2.3.7

    《Log4Android2PCv2.3.7:Android日志收集与分析工具详解》 在移动应用开发中,日志记录是调试和问题排查的关键环节。Log4Android是一款高效、便捷的日志管理工具,其PC版本Log4Android2PC旨在帮助开发者更方便地将...

    Android LOG日志抓取工具

    "Android LOG日志抓取工具"是Android开发中不可或缺的辅助工具,它简化了异常日志的收集和分析过程,对于提高问题定位的效率和质量具有显著作用。通过`CaptureDumpLogDemo`学习和实践,开发者可以更好地掌握这个...

    Notepad++-x86-Androidlog.zip

    总结来说,Notepad++-x86-Androidlog插件是一个高效且实用的工具,它将强大的文本编辑功能与Android日志查看相结合,极大地简化了开发者的工作流程,提高了问题诊断和调试的效率。通过熟练掌握这个工具,你可以更加...

    dumplog,Android日志实用程序.zip

    总之,dumplog是Android开发者不可或缺的工具之一,它简化了日志收集过程,提高了问题诊断的效率。通过参与开源社区,开发者不仅可以使用dumplog,还可以为其改进和发展做出贡献,共同推动Android开发环境的进步。...

    get android log

    总之,“getAndroidLog”是一个简化了Android日志抓取过程的工具,对于开发者来说,它提供了一种快速便捷的方式来收集和分析设备上的日志数据,从而优化调试流程。通过理解这个工具的工作原理,开发者可以更好地理解...

    Android应用源码网上绝无仅有的Log分析教程及例子-IT计算机-毕业设计.zip

    在Android应用开发中,日志(Log)是一个重要的调试工具,它可以帮助开发者追踪应用程序的运行状态,定位并解决出现的问题。本教程将深入探讨如何在Android应用中有效地使用Log进行分析,这对于理解和优化你的应用...

    android log工具

    在Android开发过程中,日志(Log)工具是一个不可或缺的调试利器。它可以帮助开发者记录应用程序运行时的状态,追踪问题,以及优化性能。本文将详细介绍Android Log工具的使用,以及如何通过它来解决应用中的bug。 ...

    Android-一个基于Logger封装的Log日志管理工具

    8. **批量打印**:支持一次性打印多个参数,简化代码,如`log.d(tag, "param1: " + param1 + ", param2: " + param2)`。 9. **日志开关**:通过配置文件或运行时参数,动态控制日志是否开启,便于在生产环境中关闭...

    Android-Tool-Log—Android轻量级简单易用的日志组件

    总的来说,"Android-Tool-Log"是一个强大的日志工具,它简化了Android开发中的日志记录过程,尤其在处理复杂数据结构和格式化输出方面表现出色。通过熟练运用这个组件,开发者可以更有效地进行调试,提高开发效率,...

    Android JNI日志工具类

    总之,“Android JNI日志工具类”是一个为了简化Android原生代码中日志输出的实用工具,它封装了Android NDK的日志API,提供了直观易用的接口,帮助开发者更高效地管理他们的JNI日志。在项目中引入这样的工具类,...

    win7 64 位 安卓logger Notepad++ 工具,下载解压后直接使用。

    标签“android log”表明这个工具包可能包含与Android日志系统相关的功能或配置。在Android开发中,`Logcat`是一个非常重要的工具,用于查看应用程序和系统服务的日志输出,帮助开发者诊断错误、追踪程序运行状态。...

    Android错误日志保存并上传服务器

    Android提供了`Log`类,它包含了一系列静态方法,如`Log.d()`, `Log.e()`, `Log.w()`等,用于输出不同级别的日志信息。开发者可以使用这些方法在代码中插入调试信息,以便在运行时查看。 在Android Studio项目中,...

    安卓日志分析崩溃拦截相关-Android开发的日记打印工具类Log4jForAndroid和LogUtil.rar

    `LogUtil`则是专门为Android定制的日志工具类,通常会包含一些针对Android系统的优化和简化。它可能提供了类似于Log4j的功能,比如格式化输出、标签添加、堆栈跟踪等,但可能更轻量级,适应Android资源有限的环境。...

    Log日志分析源码

    在Android系统中,Log日志分析是一个至关重要的环节,它能帮助开发者跟踪应用程序的运行状态,定位和解决潜在的问题。本文将深入探讨"Log日志分析源码",特别是Log.java的底层JNI(Java Native Interface)代码程序...

    安卓抓log工具.rar

    总结一下,"安卓抓log工具"是Android开发中的一款实用辅助软件,它简化了log的获取过程,提高了调试效率。通过使用这类工具,开发者可以更快地定位问题,优化应用性能,从而提升用户体验。在日常的开发工作中,熟练...

    SPREADTRUM ANDROID 8805和8810抓取LOG环境安装和方法V1.0.5.doc

    【 Spreadtrum Android LOG 简介 】 Spreadtrum Android 8805G 和 8810G 是展讯通信有限公司推出的基于Android系统的基带芯片,主要用于移动设备的通信功能。抓取LOG(日志)是调试和优化这些平台的关键步骤,因为...

    Android-PLog是一个Android专用的日志封装库

    总之,`Android-PLog`是Android开发者的一个强大工具,能够提高日志管理的效率,简化日志记录过程,同时也为复杂日志需求提供了扩展可能。结合实际项目需求,合理使用并配置`Android-PLog`,能够显著提升开发和调试...

    Android手机WiFi调试,查看logcat

    至于提供的`WifiAdb.apk`文件,这可能是一个第三方工具,用于简化WiFi调试的过程。用户可以通过安装此应用,更方便地配置和管理WiFi调试连接,而无需手动输入IP地址和授权码。但请注意,使用这类第三方工具时,确保...

Global site tag (gtag.js) - Google Analytics