Android 如何更优雅的打Log

如何更优雅的打Log


新的篇章

之前做了一个 Android-ui-2019(这个同步更新)
但是有朋友反馈说,开源库内容不错,但是有点太多了,不便于查找,希望我做个开源库整理,听到这个需求,我面对1800+的开源库,竟然有点不好下手,想来想去,我决定将这个开源库进行整理,重新配图并持续更新,希望大家多多关注我。比心~

精彩回顾

Viewpager开源库整理
时间选择器开源库整理
Menu开源库整理
动态权限库

日常开发中打log日志是我们必不可少的,那么怎么写能让你的Log更美观更好看更显眼呢,今天分享一下我封装Log的方式

方式一

Log.i("lovesosoi","Logi");
Log.d("lovesosoi","Logd");
Log.v("lovesosoi","Logv");
Log.e("lovesosoi","Loge");

方式二

public static String TAG="Lovesosoi";
Log.i(TAG,"Logi");
Log.d(TAG,"Logd");
Log.v(TAG,"Logv");
Log.e(TAG,"Loge");

方式三

将Log进行简单的封装,其实就是做一个开关,也没有加太多的功能

public class LogUtils {
    private static boolean isDebug = true;
    private static String TAG = "tag";

    public boolean isDebug() {
        return isDebug;
    }

    public static void setDebug(boolean debug) {
        isDebug = debug;
    }
    public static void setTag(String debug) {
        TAG = debug;
    }

    public static void e(String msg) {
        if (isDebug) {
            Log.e(TAG,msg);
        }
    }
    public static void e(String tag,String msg) {
        if (isDebug) {
            Log.e(tag,msg);
        }
    }
}
class Test{
    public static void main(){
        LogUtils.setDebug(true);
        LogUtils.setTag("Lovesosoi");
        LogUtils.e("heheh");
    }
}

为了追求更加便捷,好看实用的Log,我在github 上进行了搜索查找,找到了以下的Log开源库。

电脑端显示Log

名字 介绍 star 图片
logger 简介好看使用的log库 11540星
Android 如何更优雅的打Log_第1张图片
image
xLog 简单、美观、强大、可扩展的 Android 和 Java 日志库 1859星
Android 如何更优雅的打Log_第2张图片
image
KLog Android LogCat 工具类,支持行号、所在函数、点击自动跳转、Json格式自定解析打印等功能。 1725星
Android 如何更优雅的打Log_第3张图片
image
FLogger 基于双缓冲队列、多刷盘机制的超轻量级 java 日志 499星
jlog jlog是一款针对Android开发者的日志工具 478星
Android-PLog A Pure, Pretty and Powerful logging library for android 165星
LogCollector 一个收集 app 输出日志的工具 159星

手机端显示Log

名字 介绍 star 图片
Lynx 可在手机上查看 logcat 682星
Android 如何更优雅的打Log_第4张图片
image
LogcatViewer 可在手机上查看 logcat 226星
Android 如何更优雅的打Log_第5张图片
image
Console 可在手机上查看 logcat 92星
Android 如何更优雅的打Log_第6张图片
image
DebugOverlay-Android App 端,查看 Logcat 信息 80星
Android 如何更优雅的打Log_第7张图片
image

看了大神写的库,我心里就有一个疑问,我和大神的区别在哪里,我总结一下主要是两点,一是样式,大神的样式更好看,二是功能更全,我们去看一下star 最高的代码

解析Logger

为什么Logger能显示Log的代码行数,他是怎么做到的呢

Android 如何更优雅的打Log_第8张图片
mNW4rn.png

调用这个方法就能获取到当前方法所在方法栈信息,我们再来看看StackTraceElement这个类

Android 如何更优雅的打Log_第9张图片
mNWoV0.png

我们做一个小测试~

Android 如何更优雅的打Log_第10张图片
mNW5bq.png

这样类名,方法名,行数就都获取到了。

第二个问题来了,怎么做到这么整洁的呢
源码是这么做的,拼出来的!

Android 如何更优雅的打Log_第11张图片
mNfOFf.png

其他的就是格式问题了,自己动手封装一个属于自己的Log库试试吧~~

总结

所有开源库都是在 Android-ui-2019基础上修改的,欢迎大家star,我会把我遇到所有好的开源库分享出来,大家一起学习,也欢迎大家订阅我的个人微信公众号MAndroid,有问题可以问我哦,我会尽我所能给大家解答的。

你可能感兴趣的:(Android 如何更优雅的打Log)