android Log
来源:互联网 发布:二维dct变换矩阵 编辑:程序博客网 时间:2024/06/07 04:53
借鉴了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
- Android log
- android log
- android : log
- android log.
- android log
- android log
- Android LOG
- android log
- android log
- Android-log
- android log
- Android Log
- Android Log
- Android Log
- android log
- android-log
- android log
- android log
- web.py中使用wsgilog 打印日志
- 在Web环境下,获取Spring的ApplicationContext的简便方法
- MySQL集群核心概念
- 李心洁许晴变素颜美女 柳岩杨幂卸妆无人识
- 土豪的世界我们不懂
- android Log
- Kali Linux 安全渗透教程<第五更>1.4 安装Kali Linux
- IOS 与ANDROID框架及应用开发模式对比一
- Borse Bottega Veneta il suo www.bottega-veneta-outlet.com
- 如何用python 访问url
- 支持GIF动画的ImageView
- iOS开发常用的第三方库
- Python的subprocess子进程和管道进行交互
- Java中getResourceAsStream的用法