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" + "}");

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


Logger.xml("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<android.support.constraint.ConstraintLayout\n" + " xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" + " xmlns:tools=\"http://schemas.android.com/tools\"\n" + " xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n" + " android:id=\"@+id/activity_main\"\n" + " android:layout_width=\"match_parent\"\n" + " android:layout_height=\"match_parent\"\n" + " tools:context=\"com.libin.multi.tools.MainActivity\">\n" + "\n" + " <TextView\n" + " android:layout_width=\"wrap_content\"\n" + " android:layout_height=\"wrap_content\"\n" + " android:text=\"Hello World!\"\n" + " app:layout_constraintBottom_toBottomOf=\"@+id/activity_main\"\n" + " app:layout_constraintLeft_toLeftOf=\"@+id/activity_main\"\n" + " app:layout_constraintRight_toRightOf=\"@+id/activity_main\"\n" + " app:layout_constraintTop_toTopOf=\"@+id/activity_main\" />\n" + " \n" + " <ImageView\n" + " android:layout_width=\"wrap_content\"\n" + " android:layout_height=\"wrap_content\" />\n" + " \n" + " <TextView\n" + " android:layout_width=\"wrap_content\"\n" + " android:layout_height=\"wrap_content\" />\n" + "\n" + "</android.support.constraint.ConstraintLayout>\n");


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

什么是logger?相关推荐

  1. 日志处理logger

    20220127 https://mp.weixin.qq.com/s/CgmfVqogqKBzezmIR7ZfsQ https://blog.csdn.net/kyle1314608/article ...

  2. python logger日志工具类

    pytest命令行执行默认不会打印log信息,需要加'-s'参数或者 '–capture=no',即pytest -s #! /usr/bin/env python # coding=gbk impo ...

  3. log4cxx第三篇----使用多个logger

    使用多个logger时,所有logger的配置写在一个配置文件里面 两个例子: 1 一个继承的例子(http://logging.apache.org/log4cxx/) // file com/fo ...

  4. java-错误log4j:WARN No appenders could be found for logger

    使用环境: 1.IED工具 idea 2.系统环境win10 错误原因: 1.根本原因是日志问题 解决方式: 1.pom文件添加jar包 <dependency> <groupId& ...

  5. Log4j使用技巧——让子类使用父类中定义的Logger

    关于Log4j,是一个很庞大的话题,在这里,我不能对其特点和使用方法进行一一描述,只想记录自己在使用Log4j开发项目的过程中遇到的一些问题和自己的解决方案. 在项目中,有时候会遇到这么一种情况,我们 ...

  6. 万万没想到! logger.info() 还能导致线上故障?

    事故代码 直入主题,生产环境日志级别为warn,请看如下这行代码: LOGGER.info("the DTO info: {}", JSON.toJSONString(DTO)); ...

  7. Python logging调用Logger.info方法的处理过程

    本次分析一下Logger.info的流程 1. Logger.info源码: def info(self, msg, *args, **kwargs):"""Log 'm ...

  8. python logger

    python--logger模块 import logging #常用日志模块 #Logger:即 Logger Main Class,是我们进行日志记录时创建的对象,我们可以调用它的方法传入日志模板 ...

  9. log4j.logger java_log4j的多logger记录日志的简明使用

    日志,应该是一个应用软件的基础功能之一. 使用java语言,必然会使用一个日志库,我使用的是log4j的日志库.网上不少文章都有介绍,但是结合logger的不同功能介绍以及示例介绍的清楚的不多,至少我 ...

  10. python logging logger

    [Python 模块] logging模块.Logger类 - ihoneysec - 博客园

最新文章

  1. 深度学习人脸特征点自动定位综述
  2. 八大排序算法(理论和动态图)
  3. 页面传值的方法 和JSON与字符串和对象之间的转换
  4. 【CodeForces - 1152C 】Neko does Maths(数学数论,lcm,gcd性质)
  5. DOM 元素以及内容的增删改
  6. 利用LDA主题模型的生成过程仿真数据
  7. 在weblogic上配置数据源
  8. winform 文件上传限制文件类型及文件大小
  9. TM1640显示屏驱动IC驱动6位数码管实例
  10. 社群编码识别黑灰产攻击实践
  11. 285个地级市的灯光数据(1992-2013年)和雾霾(PM2.5)数据(1998-2016年)
  12. mysql 1048_MySQL Error 1048 奇遇记-阿里云开发者社区
  13. Java调用微信支付代码
  14. 学习SpringBoot:知乎超赞回答:Java如何进阶?分享面经
  15. 新媒体广告投放的知识要点解析
  16. MySQL 8.0 执行 insert 插入数据非常缓慢的问题及解决方法
  17. T100 genero report (GR) 凭证报表开发流程
  18. 用户在电商网站中购买成功了,那么它在微服务中经历了什么(转)
  19. python登录网易163邮箱,爬取邮件
  20. 2019计算机图形学会议SIGGRAPH上都有哪些新探索?沉浸式科技前沿

热门文章

  1. Pytorch模型转onnx打包部署(完全脱离pytorch)
  2. 孩子不想上学家长怎么做
  3. JS 中的类数组对象如何转换为数组?
  4. windows IIS6/IIS7/IIS8服务器SSL证书安装
  5. Microsoft Remote Desktop for MacOS下载地址
  6. 7 种提升 SpringBoot 吞吐量神技!
  7. 跟着大神练VIM--------二级
  8. asp.net播放mp3,wma, avi音频视频
  9. 招聘革命者:五岁BOSS直聘的慢与快
  10. 网络虚拟化——virtio