Android开发库VUtils之关联代码行的log
2016-03-29 10:55
706 查看
很多时候我们不仅仅需要输出log,还需要知道这个log是在什么地方输出的,点击就能跳到对应代码,下面就是我写的log类,相信能帮到大家。
效果:
Debug类:
使用i方法:
效果:
Debug类:
package com.v.vutils.utils; import android.util.Log; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class Debug { public static final String TAG = "vvv"; private static boolean B_DEBUG = true; public static final void log() { if (B_DEBUG) { String fullClassName = Thread.currentThread().getStackTrace()[3].getClassName(); String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1); String methodName = Thread.currentThread().getStackTrace()[3].getMethodName(); String fileName = Thread.currentThread().getStackTrace()[3].getFileName(); int lineNumber = Thread.currentThread().getStackTrace()[3].getLineNumber(); Log.i(TAG, String.format("at %s.%s(%s:%d)", className, methodName, fileName, lineNumber)); } } public static final void log(String str) { if (B_DEBUG) { String fullClassName = Thread.currentThread().getStackTrace()[3].getClassName(); String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1); String methodName = Thread.currentThread().getStackTrace()[3].getMethodName(); String fileName = Thread.currentThread().getStackTrace()[3].getFileName(); int lineNumber = Thread.currentThread().getStackTrace()[3].getLineNumber(); Log.i(TAG, String.format("at %s.%s(%s:%d):%s", className, methodName, fileName, lineNumber, str)); } } public static final void log4(String str) { if (B_DEBUG) { String fullClassName = Thread.currentThread().getStackTrace()[3].getClassName(); String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1); String methodName = Thread.currentThread().getStackTrace()[3].getMethodName(); String fileName = Thread.currentThread().getStackTrace()[3].getFileName(); int lineNumber = Thread.currentThread().getStackTrace()[3].getLineNumber(); String fullClassName2 = Thread.currentThread().getStackTrace()[4].getClassName(); String className2 = fullClassName2.substring(fullClassName2.lastIndexOf(".") + 1); String methodName2 = Thread.currentThread().getStackTrace()[4].getMethodName(); String fileName2 = Thread.currentThread().getStackTrace()[4].getFileName(); int lineNumber2 = Thread.currentThread().getStackTrace()[4].getLineNumber(); SimpleDateFormat format_Y_M_D = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S", Locale.CHINA); Date curDate = new Date(System.currentTimeMillis()); String date = format_Y_M_D.format(curDate); Log.i(TAG, String.format("%s at %s.%s(%s:%d):%s\n", date, className, methodName, fileName, lineNumber, str)); Log.i(TAG, String.format( "%s at %s.%s(%s:%d)\n-------------------------------------------------------\n", date, className2, methodName2, fileName2, lineNumber2)); } } public static final void logE(String str) { if (B_DEBUG) { String fullClassName = Thread.currentThread().getStackTrace()[3].getClassName(); String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1); String methodName = Thread.currentThread().getStackTrace()[3].getMethodName(); String fileName = Thread.currentThread().getStackTrace()[3].getFileName(); int lineNumber = Thread.currentThread().getStackTrace()[3].getLineNumber(); Log.e(TAG, String.format("at %s.%s(%s:%d):%s", className, methodName, fileName, lineNumber, str)); } } public static final void logW(String str) { if (B_DEBUG) { String fullClassName = Thread.currentThread().getStackTrace()[3].getClassName(); String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1); String methodName = Thread.currentThread().getStackTrace()[3].getMethodName(); String fileName = Thread.currentThread().getStackTrace()[3].getFileName(); int lineNumber = Thread.currentThread().getStackTrace()[3].getLineNumber(); Log.w(TAG, String.format("at %s.%s(%s:%d):%s", className, methodName, fileName, lineNumber, str)); } } public static void debugTrace(String msg) { try { throw new Exception(msg); } catch (Exception e) { e.printStackTrace(); } } public static void setLogEnable(boolean enable) { B_DEBUG = enable; } }
使用i方法:
Debug.log("log test.-->");
相关文章推荐
- Linux 自检和 SystemTap
- MySQL Server 日志
- Python 七步捉虫法
- 路由器的配置与调试
- MSSQL 2005 LOG备份webshell的方法
- 对于技术人员的出现了运行时间错误,是否要进行调试的解决方法
- 使用MySQL Slow Log来解决MySQL CPU占用高的问题
- 讲解WordPress开发中一些常用的debug技巧
- JavaScript程序设计之JS调试
- 可以用来调试JavaScript错误的解决方案
- 如何调试异步加载页面里包含的js文件
- jQuery下的Ajax调试步骤
- 清理SQL Server 2008日志文件Cannot shrink log file 2 的解决方案
- 调试一段PHP程序时遇到的三个问题
- JavaScript高级程序设计 错误处理与调试学习笔记
- Javascript调试脚本的经验之谈第1/2页
- 在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
- Android App调试内存泄露之Cursor篇
- Android系统开发中log的使用方法及简单的原理
- android杂记:C++文件的添加log方法分享