Android开发Android开发经验谈Android开发

Android Log框架推荐

2019-01-29  本文已影响23人  MrTrying

一般情况下,平时我们对于log的输出并没有太多的需求,只需要能够给输出,在logcat上能看,能够方便的开关debug就够了。想炫酷一些可以打开AndroidStudioSettings然后搜索Logcat可以为不同级别的log输出设置不同的颜色。但是也会有一些不同的需求和扩展,所以就整理了一些大神们的一些开源的Log框架。

0. logger

简单,漂亮,功能强大Android log框架。

接入和初始化相当简单

//添加依赖
implementation 'com.orhanobut:logger:2.2.0'

//代码中初始化
Logger.addLogAdapter(new AndroidLogAdapter());

使用也是非常简单,使用Logger代替原生的Log即可

Logger.d("hello");

支持格式化输出,可以直接输出MapSetListArray以及jsonxml

Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);

Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);

输出是这样子的

如果要禁用/隐藏输出日志,重写AndroidLogAdapterisLoggable方法。 true将打印日志消息,false将忽略log输出。

Logger.addLogAdapter(new AndroidLogAdapter() {
  @Override public boolean isLoggable(int priority, String tag) {
    return BuildConfig.DEBUG;
  }
});

更多使用方式参考github

1. timber

JakeWharton大神出品,一个基于原生Log类的小型可扩展的log框架。

还有使用注解形式的调试版本log框架Hugo

2. xLog

简单、美观、强大、可扩展的 Android 和 Java 日志库,可同时在多个通道打印日志,如 Logcat、Console 和文件。如果你愿意,甚至可以打印到远程服务器(或其他任何地方)。

同支持多种数据格式直接输出以及线程和调用栈信息。简单的使用XLog.d("Simple message")输出即可。

文档相当完善,还提供了原生LogxLog迁移的方式。

带线程信息、调用栈信息和边框的日志
格式化后的网络 API 请求
格式化后的网络 API 响应
日志文件

3. LogUtils

更方便易用的android log,支持直接打印数据集合,如List、Set、Map、数组,还支持android系统对象Intent、Bundle打印
支持高性能日志写入文件(基于mmap)。效果图如下:

日志说明
个性化设置Tag
打印数据列表
打印系统对象Intent

4. Log4a

Log4a 是一个基于 mmap, 高性能、高可用的 Android 日志收集框架。

Log4a 使用 mmap 文件映射内存作为缓存,可以在不牺牲性能的前提下最大化的保证日志的完整性。 日志首先会写入到 mmap 文件映射内存中,基于 mmap 的特性,即使用户强杀了进程,日志文件也不会丢失,并且会在下次初始化 Log4a 的时候回写到日志文件中。

demo中还提供了性能测试的相关数据。

上一篇下一篇

猜你喜欢

热点阅读