zoukankan      html  css  js  c++  java
  • Android轻量级日志管理框架

    代码地址如下:
    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平台“人人相册”客户端
    ADT 17及更高版本的混淆变更
    由glBitmap想到OpenGL编程涉及的坐标系
    版本控制之SVN
    工作了,要努力
    50 Most Frequently Used UNIX / Linux Commands (With Examples)
    linux命令分析SED (二)
    SeekBar也玩分段
    TSQL RAND()
    使用WebClient进行上传文件 [ZT]
  • 原文地址:https://www.cnblogs.com/demodashi/p/8512487.html
Copyright © 2011-2022 走看看