Android开源 日志框架 LogDog V2.3.1

news/2024/7/10 19:22:15 标签: 开源, android, 移动开发

目录

一、简介

二、下载使用

 添加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

logDog.install(this, object : IJsonEngine {
            override fun toJSON(obj: Any): String {
                return gson.toJson(obj)
            }
        })

 LogDog.builder
            .logWriteLogFileEnable(true) //是否开启写入日志文件
            .logShowMethodEnable(true) //是否开启显示方法栈信息 默认打印两个方法信息
            .logShowThreadInfoEnable(true) //是否打印当前线程信息

Java

 //这里使用的是 Google开源 Gson 也可以使用其他Json 框架 如:阿里的FastJson
  Gson gson = new Gson();
   logDog.install(this, new IJsonEngine() {
            @NonNull
            @Override
            public String toJSON(@NonNull Object obj) {
                return gson.toJson(obj);
            }
        });

    LogDog.getBuilder()
                .logWriteLogFileEnable(true) //是否开启写入日志文件
                .logShowMethodEnable(true) //是否开启显示方法栈信息 默认打印两个方法信息
                .logShowThreadInfoEnable(true); //是否打印当前线程信息

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

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

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

四、新增

1、新增 log 格式换行开关

  Koltin

 LogDog.builder
        .wrapFormat()

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

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

Koltin

 LogDog.builder
     .extraOffset()

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

3、新增日志文件分享

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

好了开始配置:

 在AndroidManifest.xml 新增如下:

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

代码上:

LogDog.logFileShare()

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

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

五、结语

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


http://www.niftyadmin.cn/n/5044213.html

相关文章

最优化方法——Matlab实现黄金分割法一维搜索

文章目录 黄金分割法一维搜索原理算法流程&#xff1a; Matlab代码命令行窗口结果打印&#xff1a;更换匿名函数&#xff1a; 《最优化方法》教材上写成表的答案&#xff1a;黄金分割法的一些性质 黄金分割法一维搜索原理 若保留区间为[x1,b],我们得到的结果是一致的. 该方法称…

嵌入式单片机开源的串口示波器实现方法

分享一款开源的QT的串口示波器&#xff0c;完全开源&#xff0c;支持串口、TCP、波形显示、通信协议。 Sailor Project功能说明 串口调试助手功能 支持传统的串口调试助手的基本收发功能&#xff0c;同时可以刷新大量的数据而不卡顿 支持保存接收的数据 支持最大200条可编辑…

成集云 | 用友T+集成聚水潭ERP(用友T+主管供应链)| 解决方案

源系统成集云目标系统 方案介绍 用友T是一款由用友畅捷通推出的新型互联网企业管理系统&#xff0c;它主要满足成长型小微企业对其灵活业务流程的管控需求&#xff0c;并重点解决往来业务管理、订单跟踪、资金、库存等管理难题。 聚水潭是一款以SaaS ERP为核心&#xff0c;集…

Kuboard突然无法访问提示:Failed to connect to the database

一、背景 没有做任何特殊操作&#xff0c;突然kuboard访问时&#xff0c;提示如下信息&#xff1a; {"message": "Failed to connect to the database.","type": "Internal Server Error" }二、排查过程 此处kuboard为docker部署的…

MySQL安全问题

MySQL安全性是确保数据库系统不受未经授权的访问、数据泄露和其他恶意活动的重要方面。以下是一些保护MySQL数据库的安全措施和最佳实践&#xff1a; 更新和维护MySQL&#xff1a; 始终使用最新版本的MySQL&#xff0c;因为新版本通常包含安全性修复和改进。此外&#xff0c;定…

038:vue页面头部提示低版本浏览器升级问题

第038个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

【3dmax】怎么使面变透明

方法一&#xff1a; 按M键调出材质编辑&#xff0c;将里面的基本参数调为最大值&#xff1b; 方法二&#xff1a; 选择图形后&#xff0c;右键&#xff0c;点击【对象属性】&#xff0c;把可见性调整为最大值&#xff1b; 方法三&#xff1a; 按快捷键【AltX】&#xff0c;就…

荣湃隔离放大器Pai8300 5.0kVRMS完美代替TI AMC1301

深力科推出了用于电流检测的隔离放大器Pai8300&#xff0c;实现对电流快速、精确的检测。Pai8300采用全新架构&#xff0c;叠加荣湃专利智能分压技术&#xff0c;保证低功耗&#xff0c;高精度和良好的隔离性能&#xff0c;广泛应用于电机驱动&#xff0c;逆变器&#xff0c;变…