Android 如何更优雅的打Log

作者: lovesosoi | 来源:发表于2019-08-21 15:55 被阅读13次

    如何更优雅的打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星 image
    xLog 简单、美观、强大、可扩展的 Android 和 Java 日志库 1859星 image
    KLog Android LogCat 工具类,支持行号、所在函数、点击自动跳转、Json格式自定解析打印等功能。 1725星 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星 image
    LogcatViewer 可在手机上查看 logcat 226星 image
    Console 可在手机上查看 logcat 92星 image
    DebugOverlay-Android App 端,查看 Logcat 信息 80星 image

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

    解析Logger

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

    mNW4rn.png

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

    mNWoV0.png

    我们做一个小测试~

    mNW5bq.png

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

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

    mNfOFf.png

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

    总结

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

    相关文章

      网友评论

        本文标题:Android 如何更优雅的打Log

        本文链接:https://www.haomeiwen.com/subject/egdyjctx.html