首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我眼中最好用的Android日志记录库Logger。

我眼中最好用的Android日志记录库Logger。

作者头像
Frank909
发布2022-05-10 14:57:08
3K0
发布2022-05-10 14:57:08
举报
文章被收录于专栏:Frank909Frank909

这是logger github地址

简介

我刚开始学c的时候最喜欢用的就是用printf()打印信息。后来学java的时候又经常用System.out.println()这个方法。再后来学Android的时候接触到了Log工具类更是欢喜的不得了。但程序员都是懒的。后来Log敲烦了,心里总有些不爽。好在AndroidStudio提供了logt生成TAG,logd直接生成log.d()这样确实让我更爽了。 不过今天我介绍一款非常有名的开源库logger。

本文也是介绍它的基本使用,摘抄于github上它的README。没有什么技术含量。但没有使用的它的同学可以尝试一下。

Logger是什么? Android平台上一款强大、简洁、优雅的日志打印框架。 Logger提供如下功能: * 线程信息 * 类信息 * 方法信息 * 优雅地打印json内容 * 优雅地打印新的一行 * 简洁的输出格式 * 可以从log中点击跳转到代码

下载

Android Studio中

compile 'com.orhanobut:logger:1.15'

特性

Android原生的log消息效果如下:

Log.d(TAG,"hello");
D/MainActivity: onCreate: 

而Logger效果如下:

Logger.d("hello");
Logger.d("hello %s %d", "world", 5);   // String.format
Logger.d("hello");
Logger.e("hello");
Logger.w("hello");
Logger.v("hello");
Logger.wtf("hello");
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
Logger.log(DEBUG, "tag", "message", throwable);

格式化参数打印功能

Logger.d("hello %s", "world");

常用容器的支持如Array、Set、List

Logger.d(list);
Logger.d(map);
Logger.d(set);
Logger.d(new String[]);

定义Logger的标签TAG.

标签默认为PRETTYLOGGER

定义统一的全局标签

Logger.init(YOUR_TAG);

定义局部临时的标签

Logger.t("mytag").d("hello");

设置(可选)

Logger可以在初始化的时候配置选项,它们只能被设置一次,因此它们最好的代码编写的地方就是你工程的Application。它们的所有项都是可以配置的。当然不配置也可以的,你可以作用默认的配置。

Logger
  .init(YOUR_TAG)                 // default PRETTYLOGGER or use just init()
  .methodCount(3)                 // default 2
  .hideThreadInfo()               // default shown
  .logLevel(LogLevel.NONE)        // default LogLevel.FULL
  .methodOffset(2)                // default 0
  .logAdapter(new AndroidLogAdapter()); //default AndroidLogAdapter
}

用另外的log工具替换原生的Log.

  • 实现LogAdapter
  • 在初始化的时候设置
.logAdapter(new CustomLogAdapter())

更多的log示例

Logger.d("hello");
Logger.e(exception, "message");
Logger.json(JSON_CONTENT);

更改logger日志中方法的显示数。

默认显示2个方法。可以通过以下代码设置

Logger.init().methodCount(1);
或者
Logger.t(1).d("test");
这里写图片描述
这里写图片描述

上面的图片显示得是两个方法名

这里写图片描述
这里写图片描述

这张图片只显示一张图片了

隐藏线程信息

Logger.init().methodCount(1).hideThreadInfo();

只显示Log信息

只显示log信息的意思就是不显示方法名和线程信息

Logger.init().methodCount(0).hideThreadInfo();

优雅地打印json数据

Logger.json(YOUR_JSON_DATA);

打印异常信息

Logger.e(exception,"message");

备注

  • 使用过滤器效果更好。
  • 确保AndroidStudio wrap option选项被禁用

其它也不多说了,总之优雅大方。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 下载
  • 特性
    • 格式化参数打印功能
      • 常用容器的支持如Array、Set、List
        • 定义Logger的标签TAG.
          • 定义统一的全局标签
          • 定义局部临时的标签
        • 设置(可选)
          • 用另外的log工具替换原生的Log.
            • 更多的log示例
              • 更改logger日志中方法的显示数。
                • 隐藏线程信息
                  • 只显示Log信息
                    • 优雅地打印json数据
                      • 打印异常信息
                        • 备注
                        相关产品与服务
                        日志服务
                        日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档