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("...."); } }
相关推荐
ALog库简化了日志输出的API,提供了一组简洁明了的方法,如`ALog.d()`, `ALog.i()`, `ALog.w()`, `ALog.e()`等,对应于Android原生Log类的DEBUG、INFO、WARN和ERROR级别。这使得开发者可以快速进行日志记录,同时...
QtAdb是一款便捷的Android日志查看工具,它旨在简化Android设备或模拟器上的Logcat日志抓取和分析过程。通过使用`adb logcat > a.log`命令,开发者可以将设备的Logcat输出保存到文本文件中,然后利用QtAdb进行查看和...
《Log4Android2PCv2.3.7:Android日志收集与分析工具详解》 在移动应用开发中,日志记录是调试和问题排查的关键环节。Log4Android是一款高效、便捷的日志管理工具,其PC版本Log4Android2PC旨在帮助开发者更方便地将...
"Android LOG日志抓取工具"是Android开发中不可或缺的辅助工具,它简化了异常日志的收集和分析过程,对于提高问题定位的效率和质量具有显著作用。通过`CaptureDumpLogDemo`学习和实践,开发者可以更好地掌握这个...
总结来说,Notepad++-x86-Androidlog插件是一个高效且实用的工具,它将强大的文本编辑功能与Android日志查看相结合,极大地简化了开发者的工作流程,提高了问题诊断和调试的效率。通过熟练掌握这个工具,你可以更加...
总之,dumplog是Android开发者不可或缺的工具之一,它简化了日志收集过程,提高了问题诊断的效率。通过参与开源社区,开发者不仅可以使用dumplog,还可以为其改进和发展做出贡献,共同推动Android开发环境的进步。...
总之,“getAndroidLog”是一个简化了Android日志抓取过程的工具,对于开发者来说,它提供了一种快速便捷的方式来收集和分析设备上的日志数据,从而优化调试流程。通过理解这个工具的工作原理,开发者可以更好地理解...
在Android应用开发中,日志(Log)是一个重要的调试工具,它可以帮助开发者追踪应用程序的运行状态,定位并解决出现的问题。本教程将深入探讨如何在Android应用中有效地使用Log进行分析,这对于理解和优化你的应用...
在Android开发过程中,日志(Log)工具是一个不可或缺的调试利器。它可以帮助开发者记录应用程序运行时的状态,追踪问题,以及优化性能。本文将详细介绍Android Log工具的使用,以及如何通过它来解决应用中的bug。 ...
8. **批量打印**:支持一次性打印多个参数,简化代码,如`log.d(tag, "param1: " + param1 + ", param2: " + param2)`。 9. **日志开关**:通过配置文件或运行时参数,动态控制日志是否开启,便于在生产环境中关闭...
总的来说,"Android-Tool-Log"是一个强大的日志工具,它简化了Android开发中的日志记录过程,尤其在处理复杂数据结构和格式化输出方面表现出色。通过熟练运用这个组件,开发者可以更有效地进行调试,提高开发效率,...
总之,“Android JNI日志工具类”是一个为了简化Android原生代码中日志输出的实用工具,它封装了Android NDK的日志API,提供了直观易用的接口,帮助开发者更高效地管理他们的JNI日志。在项目中引入这样的工具类,...
标签“android log”表明这个工具包可能包含与Android日志系统相关的功能或配置。在Android开发中,`Logcat`是一个非常重要的工具,用于查看应用程序和系统服务的日志输出,帮助开发者诊断错误、追踪程序运行状态。...
Android提供了`Log`类,它包含了一系列静态方法,如`Log.d()`, `Log.e()`, `Log.w()`等,用于输出不同级别的日志信息。开发者可以使用这些方法在代码中插入调试信息,以便在运行时查看。 在Android Studio项目中,...
`LogUtil`则是专门为Android定制的日志工具类,通常会包含一些针对Android系统的优化和简化。它可能提供了类似于Log4j的功能,比如格式化输出、标签添加、堆栈跟踪等,但可能更轻量级,适应Android资源有限的环境。...
在Android系统中,Log日志分析是一个至关重要的环节,它能帮助开发者跟踪应用程序的运行状态,定位和解决潜在的问题。本文将深入探讨"Log日志分析源码",特别是Log.java的底层JNI(Java Native Interface)代码程序...
总结一下,"安卓抓log工具"是Android开发中的一款实用辅助软件,它简化了log的获取过程,提高了调试效率。通过使用这类工具,开发者可以更快地定位问题,优化应用性能,从而提升用户体验。在日常的开发工作中,熟练...
【 Spreadtrum Android LOG 简介 】 Spreadtrum Android 8805G 和 8810G 是展讯通信有限公司推出的基于Android系统的基带芯片,主要用于移动设备的通信功能。抓取LOG(日志)是调试和优化这些平台的关键步骤,因为...
总之,`Android-PLog`是Android开发者的一个强大工具,能够提高日志管理的效率,简化日志记录过程,同时也为复杂日志需求提供了扩展可能。结合实际项目需求,合理使用并配置`Android-PLog`,能够显著提升开发和调试...
至于提供的`WifiAdb.apk`文件,这可能是一个第三方工具,用于简化WiFi调试的过程。用户可以通过安装此应用,更方便地配置和管理WiFi调试连接,而无需手动输入IP地址和授权码。但请注意,使用这类第三方工具时,确保...