码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Android开源 日志框架 LogDog V2.3.1


    目录

    一、简介

    二、下载使用

     添加jitpack 仓库

    添加依赖:

    三、更改

    1、 LogDogV2.3.1初始化:

    2、通过上面的初始化 ,已经知道IJsonEngine 优化了泛型参数,采用 Object/Any 

    3、优化空异常的判断,哪怕打印变量是NULL LogDog会打印“null” 提示开发人员

    四、新增

    1、新增 log 格式换行开关

    2、新增log 方法栈打印深度校准

    3、新增日志文件分享

    五、结语


    一、简介

       以前版本:

    Android开源 日志框架 LogDog V2.0.0icon-default.png?t=N7T8https://blog.csdn.net/Ym_quiet/article/details/130838654

          Android开源 日志框架 LogDog V1.2icon-default.png?t=N7T8https://blog.csdn.net/Ym_quiet/article/details/130550198

          Android开源 日志框架 LogDog V1.0icon-default.png?t=N7T8https://blog.csdn.net/Ym_quiet/article/details/130453232

    LogDog 2.3.1版本,比较之前版本,变化有点大,如果已经引用之前的版本,需要修改初始化和初始化配置,但是在log 打印调用方法,不需要更改,LogDog框架始终以兼容的角度去优化框架,不会出现更新版本后,需要大量更改以前的代码调用,而是尽可能采取扩展式优化,减少重构式或者重写式优化,不管怎么样,在使用LogDog时哪怕要重写也是采用内部重写,外部调用方法不变。

    二、下载使用

     添加jitpack 仓库

    Android Gradle Plugin 为 v7.1.0 以下版本:进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码:

    ...

    allprojects {
        repositories {
            maven { url 'https://jitpack.io' }
            mavenCentral()
            google()
        }
    }

    当您的 Android Gradle Plugin 为 v7.1.0 或以上版本:进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码:

    ...

    dependencyResolutionManagement {         repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

            repositories {   

                       maven { url 'https://jitpack.io' }

                      mavenCentral()

                      google()

             }

    }

    添加依赖:

    进入 “app” 目录,打开 “build.gradle” 文件,在 “dependencies” 中添加 :

    ...

    dependencies {

    ...

    implementation "com.gitee.ym521:logdog:2.3.1"

    }

    三、更改

    1、 LogDogV2.3.1初始化:

    Kotlin

    1. logDog.install(this, object : IJsonEngine {
    2. override fun toJSON(obj: Any): String {
    3. return gson.toJson(obj)
    4. }
    5. })
    6. LogDog.builder
    7. .logWriteLogFileEnable(true) //是否开启写入日志文件
    8. .logShowMethodEnable(true) //是否开启显示方法栈信息 默认打印两个方法信息
    9. .logShowThreadInfoEnable(true) //是否打印当前线程信息

    Java

    1. //这里使用的是 Google开源 Gson 也可以使用其他Json 框架 如:阿里的FastJson
    2. Gson gson = new Gson();
    3. logDog.install(this, new IJsonEngine() {
    4. @NonNull
    5. @Override
    6. public String toJSON(@NonNull Object obj) {
    7. return gson.toJson(obj);
    8. }
    9. });
    10. LogDog.getBuilder()
    11. .logWriteLogFileEnable(true) //是否开启写入日志文件
    12. .logShowMethodEnable(true) //是否开启显示方法栈信息 默认打印两个方法信息
    13. .logShowThreadInfoEnable(true); //是否打印当前线程信息

    其他更多配置可以参考LogDog V2.0.0 ,配置方法级别不会发生改变,一般只会新增。

    2、通过上面的初始化 ,已经知道IJsonEngine 优化了泛型参数,采用 Object/Any 

    3、优化空异常的判断,哪怕打印变量是NULL LogDog会打印“null” 提示开发人员

    四、新增

    1、新增 log 格式换行开关

      Koltin

    1. LogDog.builder
    2. .wrapFormat()

    默认是没有开启的,也就是默认不会换行的就是Log 有多长会打印多长,但是会在系统日志安全长度内,如果超出会被强制切断打印输出到下一条Log。这个开关建议在开发调试可以开启,在测试阶段如果需要Log文件输出建议关闭,因为会对日志文件产生误解。

    2、新增log 方法栈打印深度校准

    Koltin

    1. LogDog.builder
    2. .extraOffset()

    这个主要是对LogDog.custom()有自己封装需求的开发人员开放的,因为有自己封装的会多一层方法(封装方法层),深度校准范围[-3,5] ,闭区间 -3到5。

    3、新增日志文件分享

    在我们日常开发时,总是需要修复Bug,但是Android开发的bug就不好找了,尤其碰到非专业测试,他们给的现象都不是准确,但是APP 又是在他们测试手机上,每次copy Log文件也很麻烦,所以我嘛,纯属就是怕麻烦,新增在这个Log文件分享的功能,测试APP 直接把Log文件分享给办公APP 然后发给开发人员不就很方便了。

    好了开始配置:

     在AndroidManifest.xml 新增如下:

    1. <provider android:name="com.ym521.logdog.provider.LogFileShareProvider"
    2. android:authorities="${applicationId}.fileshare"
    3. android:exported="false"
    4. android:grantUriPermissions="true">
    5. <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
    6. android:resource="@xml/provider_logfile_paths" />
    7. provider>

    代码上:

    LogDog.logFileShare()

    注意:必须开启了日志文件输出(logWriteLogFileEnable(true)),不然调用是没有效果的

    期望:后面可能会把crash 日志加入进去,大概只需要开发人员,开启搜集Crash Log开关就可以将Crash 日志写入日志文件内。方便定位bug。

    五、结语

    希望您给博主一些鼓励(点赞、关注、收藏),如果LogDog有BUG或者您有好的建议欢迎大家提出。

  • 相关阅读:
    GIS工具maptalks开发手册(二)03——渲染面
    关于丢失msvcp71.dll的5个解决办法,msvcp71.dll丢失原因分析
    日语基础复习 Day 14
    DataObjectImpl
    allure测试报告生成逻辑--解决在Jenkins里打开allure报告页面后空白显示无数据问题(以window环境为例)
    Java内存模型:创建对象在堆区如何分配内存
    微信小程序 TabBar设置
    MYSQL数据库管理
    华为云物联网MQTT对接
    xss-labs/level7
  • 原文地址:https://blog.csdn.net/Ym_quiet/article/details/131875751
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号