代码地址如下:
http://www.demodashi.com/demo/12134.html

ViseLog

Android 轻量级日志框架,使用森林对象维护不同的日志树进行日志输出,可以是Logcat树、文件树等,支持Bundle、Intent、Reference、Throwable、Map、Collection、JSON、Xml等格式化的输出。

  • 项目引用:compile 'com.vise.xiaoyaoyou:viselog:1.1.2'

功能介绍

1、在Logcat中完美的格式化输出,能很好的过滤手机和其他App的日志信息;

2、包含线程、类、方法信息,可以清楚地看到日志记录的调用堆栈;

3、支持跳转到源码处;

4、支持格式化输出JSON、XML格式信息;

5、支持List、Set、Map和数组的格式化输出;

6、支持系统对象如Bundle、Intent、Reference和Throwable的格式化输出;

7、支持自定义对象的格式化输出;

8、支持字符串格式化后输出;

9、支持自定义对象解析器;

10、支持自定义日志输出树,如输出到文件的树等。

项目结构

使用介绍

使用前需要进行日志的配置初始化及日志树的添加,默认实现了打印到Logcat的日志树,但需要在应用启动时进行添加,这样才能将日志信息打印到Logcat中。一般需要在自定义Application的OnCreate方法中进行如下配置:

ViseLog.getLogConfig()
.configAllowLog(true)//是否输出日志
.configShowBorders(true)//是否排版显示
.configTagPrefix("ViseLog")//设置标签前缀
.configFormatTag("%d{HH:mm:ss:SSS} %t %c{-5}")//个性化设置标签,默认显示包名
.configLevel(Log.VERBOSE);//设置日志最小输出级别,默认Log.VERBOSE
ViseLog.plant(new LogcatTree());//添加打印日志信息到Logcat的树

1、打印基本信息

ViseLog.d("test message");

2、打印基本对象

ViseLog.d(new Boolean(true));

3、打印Bundle对象

ViseLog.d(new Bundle());

4、打印Intent对象

ViseLog.d(new Intent());

5、打印Reference对象

ViseLog.d(new SoftReference(0));

6、打印Throwable对象

ViseLog.e(new NullPointerException("this object is null!"));

7、打印List集合

List<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add("test" + i);
}
ViseLog.d(list);

8、打印Map集合

Map<String, String> map = new HashMap<>();
for (int i = 0; i < 5; i++) {
map.put("xyy" + i, "test" + i);
}
ViseLog.d(map);

9、打印JSON字符串

String json = "{'xyy1':[{'test1':'test1'},{'test2':'test2'}],'xyy2':{'test3':'test3','test4':'test4'}}";
ViseLog.json(json);

10、打印XML字符串

String xml = "<xyy><test1><test2>key</test2></test1><test3>name</test3><test4>value</test4></xyy>";
ViseLog.xml(xml);

核心功能讲解

1、森林结构

其核心思想是将日志系统看成一个森林对象统一进行维护,森林可以添加树和移除树,只有添加了指定的功能树才会有日志输出。日志功能由ITree接口进行定义,统一由主干树SoulsTree来分配,并将日志输出功能提供给上层实现,默认已经实现了日志打印到Logcat的树DefaultTree。

2、自定义解析器

实现Parser接口,并实现parseClassType()和parseString()方法,再通过addParserClass()配置到ViseLog就行,详细可参考文档自定义对象打印器

3、个性标签设置详解

变量 简写 描述 参数 示例 输出结果
%% 转义% %%d %d
%date %d 当前时间 格式化时间,如HH:mm:ss %d{HH:mm:ss:SSS} 22:12:12:112
%thread %t 当前线程名称 %t thread-112
%caller %c 线程信息和类路径 一般用%c{-5}就好了,用法为%c{整数}或者%caller{整数},整数为包名路径,如路径为com.vise.logapp.MainActivity.onCreate(MainActivity.java:108),%c{1}输出com,以.分割的第一个,如果小于0就是排除前面n个,如%c{-1},vise.logapp.MainActivity.onCreate(MainActivity.java:135) %c{-3} MainActivity.onCreate(MainActivity.java:108)

4、日志配置详解

方法 描述 取值 缺省
configAllowLog 是否允许日志输出 boolean true
configTagPrefix 日志log的前缀 String "ViseLog"
configShowBorders 是否显示边界 boolean false
configLevel 日志显示最小等级 Log Log.VERBOSE
addParserClass 自定义对象打印 Parser
configFormatTag 个性化设置Tag String %c{-5}

Android轻量级日志管理框架

代码地址如下:
http://www.demodashi.com/demo/12134.html

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

Android轻量级日志管理框架的更多相关文章

  1. 【开源.NET】 分享一个前后端分离的轻量级内容管理框架

    开发框架要考虑的面太多了:安全.稳定.性能.效率.扩展.整洁,还要经得起实践的考验,从零开发一个可用的框架,是很耗时费神的工作.网上很多开源的框架,为何还要自己开发?我是基于以下两点: 没找到合适的: ...

  2. 使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB)

    使用Monitor调试Unity3D Android程序日志输出(非DDMS和ADB) http://www.cnblogs.com/mrkelly/p/4015245.html 以往调试Androi ...

  3. Android Studio日志工具的使用

    Android Studio的LogCat工具 Verbose:对应Log.v(),这个方法用于打印那些最为琐碎的信息,意义最小的日志信息.是Android日志里面级别最低的一种. Debug:对应L ...

  4. Android中日志工具的使用

    添加LogCat到你的Eclipse日志在任何项目的开发过程中都会起到非常重要的作用,在Android项目中如果你想要查看日志则必须要使用LogCat工具.当你第一次在Eclipse中运行Androi ...

  5. Android的电源管理框架

    Android的电源管理框架 Android通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理框架分成五个部分:应用层,framework层,JNI层,HAL层和内核层.电源管理 ...

  6. Android中日志信息的打印方式

    Android中日志信息的打印方式主要有以下7种: 1)System.out(i级别) 2)System.err(w级别) 3)Log.v 4)Log.d 5)Log.i 6)Log.w 7)Log. ...

  7. 【开源.NET】轻量级内容管理框架Grissom.CMS(第三篇解析配置文件和数据以转换成 sql)

    该篇是 Grissom.CMS 框架系列文章的第三篇, 主要介绍框架用到的核心库 EasyJsonToSql, 把标准的配置文件和数据结构解析成可执行的 sql. 该框架能实现自动化增删改查得益于 E ...

  8. [原创]adb使用教程v1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  9. 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)

    前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...

随机推荐

  1. Starting MySQL... ERROR! The server quit without updating PID file 问题解决

    今天遇到一个mysql起不来,不知为啥挂了,启动是下面的报错 Starting MySQL... ERROR! The server quit without updating PID file 后来 ...

  2. VBA 学习

    Sub abc() Dim i Dim coloumn coloumn = For i = To Dim currentValue currentValue = Val(ReplaceChar(She ...

  3. 【转载】SQL server connection KeepAlive

    1.什么是SQL server TCP连接的keep Alive? 简单说,keep alive 是SQL server在建立每一个TCP 连接的时候,指定了TCP 协议的keepaliveinter ...

  4. 反汇编引擎Capstone

    反汇编引擎Capstone   Capstone是Kali Linux自带的一款轻量级反汇编引擎.它可以支持多种硬件构架,如ARM.ARM64.MIPS.X86.该框架使用C语言实现,但支持C++.P ...

  5. 6.NFC之非NDEF格式

    先看流程图 使用步骤: 第一步:声明权限 <!-- 允许应用程序使用NFC功能 --> <uses-permission android:name="android.per ...

  6. 【转载】 GNU GCC 选项说明

    GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GN ...

  7. SQL SERVER 补丁查看

    SELECT   @@VERSION as 版本情况 SELECT SERVERPROPERTY('ProductVersion') as 产品版本编号, SERVERPROPERTY('Produc ...

  8. python定时执行方法

    1  time.sleep import time for i in range(5): print(i) time.sleep(10) 2 用shed import time import sche ...

  9. 超级惊艳 10款HTML5动画特效推荐[转]

    ylbtech_html5_demo 今天我们要来推荐 10 款超级惊艳的 HTML5 动画特效,有一些是基于 CSS3 和 jQuery 的,比较实用,特别是前几个 HTML5 动画,简直酷毙了,现 ...

  10. Linux下自动监测并重启Apache服务脚本

    为了达到一个高可用的基于Apache的网站环境,在Apache由于种种原因自动停止运行之后,想立即恢复网站访问,这就需要有个工具实时监测Apache的运行状态并能够自动重启httpd服务,写了一个简单 ...