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

本文介绍了一款名为 Logger 的 Android 开源库,它是一款强大的日志打印框架,支持线程、类及方法信息显示,优雅地打印 JSON 和 XML 内容等功能。文章详细展示了 Logger 的基本使用方法,并提供了丰富的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是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();

image

只显示Log信息

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

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

image

优雅地打印json数据

Logger.json(YOUR_JSON_DATA);

image

打印异常信息

Logger.e(exception,"message");

备注

  • 使用过滤器效果更好。
    image

  • 确保AndroidStudio wrap option选项被禁用
    image

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值