`
wcgdonot
  • 浏览: 89031 次
  • 性别: 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("....");
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics