一般情况下,平时我们对于log的输出并没有太多的需求,只需要能够给输出,在logcat
上能看,能够方便的开关debug
就够了。想炫酷一些可以打开AndroidStudio
的Settings
然后搜索Logcat
可以为不同级别的log
输出设置不同的颜色。但是也会有一些不同的需求和扩展,所以就整理了一些大神们的一些开源的Log框架。
0. logger
简单,漂亮,功能强大Android log框架。
接入和初始化相当简单
//添加依赖
implementation 'com.orhanobut:logger:2.2.0'
//代码中初始化
Logger.addLogAdapter(new AndroidLogAdapter());
使用也是非常简单,使用Logger
代替原生的Log
即可
Logger.d("hello");
支持格式化输出,可以直接输出Map
、Set
、List
、Array
以及json
和xml
Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
输出是这样子的
如果要禁用/隐藏输出日志,重写AndroidLogAdapter
的isLoggable
方法。 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")
输出即可。
文档相当完善,还提供了原生Log
向xLog
迁移的方式。
带线程信息、调用栈信息和边框的日志
格式化后的网络 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中还提供了性能测试的相关数据。
网友评论