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("...."); } }
相关推荐
概述 更新日志示例 采用Android更改日志,你可以轻松地创建,显示和维护一个Android更新日志对话框显示用户的Android设备上的Android应用程序的最新变化/发行说明(平板电脑/智能手机/不管)。...类ChangeLog.java复制
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
功能更新: 增加判断下载进度的回调 增加在线参数回调接口 是否地理位置的开关 增加log打印的开关 简化了客户端反馈的存储逻辑 反馈模块减少了不必要的请求
如果你想了解更多关于这个库的背景,请阅读这篇文章: Android 中的 Easy Storage Access Framework with SimpleStorage 将 Simple Storage 添加到您的项目中非常简单: implementation " ...
Odin是一种轻量级的,完全异步的Http库,可简化android HTTP通信。 Gradle compile(group : ' de.ahieser.odinhttp ' , name : ' odin ' , version : ' 0.5.2 ' , ext : ' aar ' ) 简单的GET请求: Odin ...
该程序主要由两个模块组成,这两个模块分别是 (通常在开发中使用)和 (在开发中很少使用),但是utils有助于简化主模块。 :fire: 文献资料 实用代码 子工具 捐献 如果该项目对您有很大帮助,并且您希望支持该项目...
该程序主要由两个模块组成,这两个模块分别是 (通常在开发中使用)和 (在开发中很少使用),但是utils有助于简化主模块。 :fire: 文献资料 实用代码 子工具 捐献 如果该项目对您有很大帮助,并且您想支持该项目的...
使用Fragmentation简化Fragment的操作和懒加载 使用RecyclerView实现下拉刷新、上拉加载、侧滑删除、长按拖曳 使用x5WebView做阅览页,比原生WebView体验更佳 使用SVG及其动画实现progressbar的效果 使用...
支持Java环境log打印,打印内容近似Android-Logcat风格 支持JSON字符串、JSON对象、JSON数组友好格式化打印 支持代码追踪调试,trace()方法打印方法调用栈(看源码效率工具) 支持超长4000+字符串长度打印 支持UI...
位置管理器 要在 Android 设备上获取位置信息,您需要执行“一些”步骤! 那些是什么? 让我们来看看... 检查应用程序是否需要权限如果没有,请向用户询问运行时权限检查用户是否授予权限假设我们获得了许可,现在呢...
ParSeq的一些主要优点包括:异步操作(例如IO)的并行化非块化ParSeq的序列化执行ParSeq是一个框架,可简化用Java编写异步代码的过程。 ParSeq的一些主要优点包括:异步操作(例如IO)的并行化,用于无阻塞计算的...
这个是极简化的Android App开发框架和App内调试工具,源码BeeFramework_Android,BeeFramework Android版主要为Android初级开发人员提供一个基于MVC开发模式的APP DEMO,并提供一套APP内调试工具,包括 查看网络数据...
A powerful library that manage Fragment for Android!... 在不需要多点触控的页面上,通过theme(或其他方式)关闭多点触控 name="android:splitMotionEvents">false进一步使用、ChangeLog,查看wiki
HDHomeWeb HDHomeRun的Chromecast /网络流媒体,简化! 这Python脚本可以让你流从HDHomeRun渠道与Chromecast /移动设备(HLS,所以iOS和Android)。 请参见了解如何在Windows下安装。 它拉动的HDHomeRun,它提供了...
测试套件状态单元测试 系统测试入门先决条件Node.js> = 10 npm> = 5.6.0 Android Studio(适用于Android应用) Xcode> = 10(适用于iOS应用) CocoaPods(如果使用React Native> = 0.60的版本)安装npm install -g ...
Android Killer 是一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一 身,支持logcat日志输出,语法高亮,基于关键字(支持单行...
移动全平台iOS/Android性能测试、分析工具平台,快速定位分析性能问题,提升APP应用及游戏的性能和品质,手机无需ROOT/越狱,手机硬件、游戏及APP应用也无需做任何修改,极简化即插即用! 软件特色 移动全平台 支持...
Flying-PigeonFlying-Pigeon 是一个IPC跨进程通信组件,把跨进程通信简化到极致,并且突破binder 1MB内存大小限制。引入Gradleimplementation 'com.github.Justson:flying-pigeon:v1.0.7'方式一Serverprivate Api ...
Mojoc v0.5.0 Mojoc是一个开源,跨平台的纯C游戏引擎。...在ChangeLog中发布更改。 Wiki中的文档。 建筑许可证Mojoc是根据MIT许可证获得许可的。 核心理念少即是多,简单就更好,简化复杂的想法。 特点唯一的程序