博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是logger?
阅读量:5049 次
发布时间:2019-06-12

本文共 2707 字,大约阅读时间需要 9 分钟。

log信息是开发中最最重要的部分,那么如何更好的捕获信息呢?接下来就让我们了解一下强大的log框架–Logger。

什么是logger?

  • 是一个简单,漂亮,强大的Android开源日志工具,代码托管在github

亮点?

  • 能够提供: 
    1. 线程信息:log在哪个线程
    2. 类信息:log在哪个类
    3. 方法信息:log在哪个方法的哪一行
    4. 漂亮地打印json
    5. 漂亮的打印XML
    6. 漂亮的换行分割
    7. 整洁的输出
    8. 跳转到源代码

为啥使用它?

  1. 默认实现是对于android.util.Log的封装
  2. 弥补了“android的logcat的message有字符长度的限制,超过将直接截断”的缺陷
  3. 支持参数添加占位符来格式化字符串,Logger.d(“hello %s”, “world”);
  4. 支持直接打印List,Set,Map,数组类型等引用类型
  5. 指定任意TAG
  6. 配置初始化选项
  7. 支持自定义CustomLogAdapter实现LogAdapter,替换android.util.Log

如何使用?

添加依赖:

compile 'com.orhanobut:logger:1.15'
  • 1
  1. 配置初始化选项(非必须选项,不配置的情况下会使用系统默认的初始化配置 
Logger  .init("mytag")    //LOG TAG默认是PRETTYLOGGER   .methodCount(3)                 // 决定打印多少行(每一行代表一个方法)默认:2  .hideThreadInfo()              // 隐藏线程信息 默认:显示 .logLevel(LogLevel.NONE) // 是否显示Log 默认:LogLevel.FULL(全部显示) .methodOffset(2) // 默认:0 .logAdapter(new AndroidLogAdapter()); //可以自己构造适配器默认:AndroidLogAdapter

效果展示:

默认效果: 

这里写图片描述


Logger.init().logLevel(LogLevel.FULL).methodCount(3);
  • 1

methodCount(3) ,中间方法区数量变为3,每一行代表一个方法。

这里写图片描述


2.打印不同level的Log 

Logger.v(String message); // VERBOSE级别,可添加占位符 
Logger.d(Object object); // DEBUG级别,打印对象 
Logger.d(String message); // DEBUG级别,可添加占位符 
Logger.i(String message); // INFO级别,可添加占位符 
Logger.w(String message); // WARN级别,可添加占位符 
Logger.e(String message); // ERROR级别,可添加占位符 
Logger.e(Throwable throwable, String message); // ERROR级别,可添加占位符 
Logger.wtf(String message); // ASSERT级别,可添加占位符 
Logger.xml(String xml); 
Logger.json(String json);

效果展示:

Logger.v("vvvvvvvv");
  • 1

这里写代码片


Logger.d("dddddddd");
  • 1

这里写图片描述


Logger.e("eeeeeeee");
  • 1

这里写图片描述


Logger.w("wwwwwwww");
  • 1

这里写图片描述


Logger.v("vvvvvvvv");
  • 1

这里写图片描述


Logger.wtf("wtfwtf");
  • 1

这里写图片描述


Logger.json("{
\n" + " \"name\": \"BeJson\",\n" + " \"url\": \"http://www.yigouyule2.cn \",\n" + " \"page\": 88,\n" + " \"isNonProfit\":www.wanmeiyuele.cn true,\n" + " \"address\":www.120xh.cn { \n" + " \"www.feifanyule.cn/ street\": \"科技园路.\",\n" + " \"city\": \"江苏苏州\",\n" + " \"www.feifanyule.cn/ country\": \"中国\"\n" + " },\n" + " \"links\": [\n" + " { \n" + " \"name\": www.xuancayule.com/ \"Google\",\n" + " \"url\www.thd178.com": \"http://www.google.com\"\n" + " },\n" + " { \n" + " \"name\": \"Baidu\",\n" + " \"url\": \"http://www.baidu.com\"\n" + " },\n" + " { \n" + " \"name\": \"SoSo\",\n" + " \"url\": \"http://www.SoSo.com\"\n" + " }\n" + " ]\n" + "}");

这里写图片描述

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState); methodA(); } void methodA(){ methodB(); } void methodB(){ Logger.d("methodB","sas","asdasdasd",1);

这里写图片描述


Logger.xml("
\n" + "
\n" + "\n" + "
\n" + " \n" + "
\n" + " \n" + "
\n" + "\n" + "\n");

这里写图片描述


new Thread(new Runnable() {            @Override            public void run() { Logger.e("Thread"); } }).start();

 

这里写图片描述

 

转载于:https://www.cnblogs.com/qwangxiao/p/9072652.html

你可能感兴趣的文章
EBS R12 LOG files 位置
查看>>
《集体智慧编程》学习笔记
查看>>
其中imagelist.txt和train.txt的格式如下注释所示
查看>>
手机端rem
查看>>
U-editor文件上传
查看>>
selenium+python之iframe学习笔记
查看>>
day1-变量、循环、字符编码
查看>>
进程与线程的表示,属性,守护模式
查看>>
鑫安财富项目随记6--如何进行多项删除
查看>>
squid
查看>>
(42)zabbix使用IT services 了解服务器SLA整体情况
查看>>
【转】android下不规则多边形填充位图
查看>>
超链接:a标签
查看>>
trunk的作用是??
查看>>
【POJ - 1426】Find The Multiple(dfs)
查看>>
C# webService 读取txt/Excel/SQL/Orcal的方法
查看>>
运算符
查看>>
django学习之- CSRF及中间件
查看>>
庆祝E8.Net工作流平台运行版注册数量超过2000,特提供下载
查看>>
20家银行遇涉企收费限令 四因素仍在加剧“钱贵”
查看>>