android Log

借鉴了imageload 项目的log

log封装类 :

package com.david.toolkit;

import android.util.Log;

/**
 * 
 * 自定义log工具类 ,可以在项目之初设定项目的log tag 
 * 
 * 通过开关控制log是否打印以及打印级别
 * 
 * 在项目发布时可以做一下设置将log关闭 ,
 * 1、通过setEnable(false) 关闭所有log
 * 2、setLogLevel(android.util.Log.WARN)限定只打印warn以上日志
 * 3、发布打包时删除部分log代码
 * 在project.properties中添加 proguard.config=proguard-project.txt
 * 在proguard-project.txt中添加
 * 
 * -assumenosideeffects class com.david.toolkit.L {
	public static int v(...);
	public static int d(...);
	public static int i(...);

}
 * 
 * 
 * @author David.Zhang
 *
 */
public class L {
	
	private static int LOG_LEVEL = android.util.Log.VERBOSE ;
	
	private static boolean ENABLE = false ;
	
	private static final String LOG_FORMAT = "\n%1$s\n%2$s";
	
	private static String TAG = "===David.Zhang.toolkit.Debug===" ;
	
	
	/**
	 * 打印log开关 
	 * TRUE: 可以打印
	 * FALSE 不能打印
	 * @param enable
	 */
	public static void setEnable(boolean enable){
		
		ENABLE = enable ;
	}
	
	/**
	 * 是否可以打印
	 * @return
	 */
	public static boolean isEnable(){
		return ENABLE ;
	}
	
	/**
	 * 设置打印log 级别,取值参考
	 *  {@link android.util.Log#VERBOSE}
	 * 	{@link android.util.Log#DEBUG}
	 *	{@link android.util.Log#INFO}
	 * 	{@link android.util.Log#WARN}
	 * 	{@link android.util.Log#ERROR}
	 * 
	 * 是否可以打印还需参考 {@link #isEnable()} 的取值
	 * 
	 * @param level
	 */
	public static void setLogLevel (int level){
		LOG_LEVEL = level ;
	}
	
	/**
	 *  设置tag , 如果不设置使用默认tag
	 * @param tag
	 */
	public static void setTag(String tag){
		TAG = tag ;
	}
	
	
	public static void v(String tag ,String msg ){
		log(Log.VERBOSE, null, tag, msg);
	}
	
	public static void v(String tag ,String msg ,Throwable tr ){
		log(Log.VERBOSE, tr, tag, msg);
	}
	
	
	public static void d(String tag ,String msg ){
		log(Log.DEBUG, null, tag, msg);
	}
	
	public static void d(String tag ,String msg ,Throwable tr ){
		log(Log.DEBUG, tr, tag, msg);
	}
	
	public static void i(String tag ,String msg ){
		log(Log.INFO, null, tag, msg);
	}
	
	public static void i(String tag ,String msg ,Throwable tr ){
		log(Log.INFO, tr, tag, msg);
	}
	
	public static void w(String tag ,String msg ){
		log(Log.WARN, null, tag, msg);
	}
	
	public static void w(String tag ,String msg ,Throwable tr ){
		log(Log.WARN, tr, tag, msg);
	}
	
	
	public static void e(String tag ,String msg ){
		log(Log.ERROR, null, tag, msg);
	}
	
	public static void e(String tag ,String msg ,Throwable tr ){
		log(Log.ERROR, tr, tag, msg);
	}
	
	public static void log(int priority, String tag , String msg ) {
		log(priority, null, tag, msg);
	}
	public static void log(int priority, Throwable ex, String tag , String msg ) {
		
		if (!ENABLE || priority < LOG_LEVEL ) return;
		
		String log ="";
		
		if (ex != null) {
			String logMessage = ex.getMessage() ;
			String logBody = Log.getStackTraceString(ex);
			log = String.format(LOG_FORMAT, logMessage, logBody);
		}
		
		Log.println(priority, TAG, tag + " +++++++>>> "+ msg + log);
		
	}
	
/*	
	//
	//  非静态
	/
	
	private boolean enable_module = true ;
	private String tag_module = "" ;
	public L(String tag ){
		this(tag, true) ;
	}
	
	public L(String tag, boolean enable){
		tag_module = tag ;
		enable_module = enable ;
	}
	
	public  void vm(String tag ,String msg ){
		logvm(Log.VERBOSE, null, tag, msg);
	}
	
	public void dm(String tag ,String msg ){
		log(Log.DEBUG, null, tag, msg);
	}
	
	public void im(String tag ,String msg ){
		log(Log.INFO, null, tag, msg);
	}
	
	public void wm(String tag ,String msg ){
		log(Log.WARN, null, tag, msg);
	}
	public void em(String tag ,String msg ){
		log(Log.ERROR, null, tag, msg);
	}
	
		



调用时根据需要可以再封装一层,coding阶段测试使用


package com.david.toolkit;

public class Log {

	// 
	// 非静态
	// ///

	private boolean enable_module = true;
	private String tag_module = "";

	public Log(String tag) {
		this(tag, true);
	}

	public Log(String tag, boolean enable) {
		tag_module = tag;
		enable_module = enable;
	}

	public void v( String msg) {
		log(android.util.Log.VERBOSE, null,  msg);
	}

	public void v( String msg, Throwable tr) {
		log(android.util.Log.VERBOSE, tr,  msg);
	}

	public void d( String msg) {
		log(android.util.Log.DEBUG, null,  msg);
	}

	public void d( String msg, Throwable tr) {
		log(android.util.Log.DEBUG, tr,  msg);
	}

	public void i( String msg) {
		log(android.util.Log.INFO, null,  msg);
	}

	public void i( String msg, Throwable tr) {
		log(android.util.Log.INFO, tr,  msg);
	}

	public void w( String msg) {
		log(android.util.Log.WARN, null,  msg);
	}

	public void w( String msg, Throwable tr) {
		log(android.util.Log.WARN, tr,  msg);
	}

	public void e( String msg) {
		log(android.util.Log.ERROR, null,  msg);
	}

	public void e( String msg, Throwable tr) {
		log(android.util.Log.ERROR, tr,  msg);
	}

	public void log(int priority,  String msg) {
		log(priority, null,  msg);
	}

	private void log(int priority, Throwable ex,  String msg) {

		if (enable_module)
			return;
		L.log(priority, ex, tag_module, msg);

	}

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值