Android开发 LogDog (日志狗)V2.0.0
目录
一、简介
二、使用推荐
1、初始化LogDog
2、运行中如何更改初始化时的配置?
三、更改
四、新功能
1、Log过滤
2、自定义打印
3、提供占位符式打印
一、简介
LogDog V1.0 版本
https://blog.csdn.net/Ym_quiet/article/details/130453232?spm=1001.2014.3001.5501 LogDog V1.2版本
https://blog.csdn.net/Ym_quiet/article/details/130550198?spm=1001.2014.3001.5501
二、使用推荐
添加LogDog依赖
dependencies {implementation 'com.gitee.ym521:logdog:2.0.0'}
为了大家更好的使用LogDog,下面我推荐一个简单的使用示例
1、初始化LogDog
Kotlin示例
class MyApplication:Application() {override fun onCreate() {super.onCreate()val gson = GsonBuilder().setPrettyPrinting().create()val logdog =LogDog.Builder().logShowMethodEnable(true,3).logShowThreadInfoEnable(true).build()logdog.install(this,object :IJsonEngine{override fun <T> toJSON(obj: T): String {return gson.toJson(obj)}})}}
Java示例
public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Gson gson = new GsonBuilder().setPrettyPrinting().create();LogDog logdog = new LogDog.Builder().logShowMethodEnable(true, 3).logShowThreadInfoEnable(true).build();logdog.install(this, new IJsonEngine() {@NonNull@Overridepublic <T> String toJSON(T t) {return gson.toJson(t);}});}
}
IJsonEngine 为LogDog 对外暴露的Gson接口,也是对log内的引用类型的参数提供Json化的实现,在这里我使用的是Gson
implementation 'com.google.code.gson:gson:2.9.0'
2、运行中如何更改初始化时的配置?
LogDog.Builder()/*** 打印日志过滤日志级别,默认全部打印* 日志过滤是过滤掉你添加的日志级别,不想打印的级别日志需要你添加对应的日志级别*/.logFilter(LogDog.WARN or LogDog.DEBUG)/*** 默认未启用* @param enabled 是否打印方法信息* @param methodCount 打印方法的个数 如果小于1 为1,大于10 为10*/.logShowMethodEnable(true,2)/*** 默认未启用* 是否打印线程信息*/.logShowThreadInfoEnable(true)/*** 默认是未启用* 是否将日志写入日志文件中* 日志文件以当天日期为单位生成*/.logWriteLogFileEnable(true)/*** 默认是未启用* 是否启动AES 加密 * 如果启动加密 但未配置key下,* 将使用默认秘钥"0000000000000000"*/.logFileAESEnable(true,"123456")/*** 默认未启用* 是否将日志文件输出到外部私有空间*/.logFileShowEnable(true)/*** 默认值 LOGDOG* 缺省TAG设置,没有自行填写的TAG的统一使用缺省TAG*/.defaultTAG("APP_LOG")
只需要再次对LogDog.Builder() 进行设置 就会覆盖初始化时的配置。
三、更改
新版本V2.0.0版本,去除了以前统一关闭打印输出,改为过滤式关闭Log打印输出,具体使用下面将提供java和kotlin示例
kotlin示例
LogDog.Builder()/*** 打印日志过滤日志级别,默认全部打印* 日志过滤是过滤掉你添加的日志级别,不想打印的级别日志需要你添加对应的日志级别*/.logFilter(LogDog.WARN or LogDog.DEBUG)
Java示例
new LogDog.Builder()* 打印日志过滤日志级别,默认全部打印* 日志过滤是过滤掉你添加的日志级别,不想打印的级别日志需要你添加对应的日志级别*/.logFilter(LogDog.WARN | LogDog.DEBUG)
注意:过滤多个log级别,采用“或”运算拼接, kotlin 使用 or ,Java 使用 | 来选择要过滤(关闭)的日志级别,例如示例代码就是过滤warn和debug日志级别,非这里两个都可以打印输出。
四、新功能
新版本V2.0.0版本,新功能:打印过滤、自定义打印、提供占位符式打印。
1、Log过滤
在标题三中已阐述,在这里不在重复。
2、自定义打印
/**
* @param printer 打印开关
* @param write 写文件开关
*/
fun custom( printer, write, priority, tag, msg)
注意:printer 和write ,这两个开关将不会被LogDog.Builder 覆盖,也不会覆盖LogDog.Builder中的配置。
3、提供占位符式打印
示例代码:
LogDog.errorf("DEBUG","我是%log,我的主人是%log","LogDog","Ym")
当然还有其他相关的方法函数提供例如 LogDog.debugf(),LogDog.customf()等,当然填充占位符的变量也不限制类型,还是一样引用类型将会被Json化后填充占位符。
注意:这里的占位符是%log(属于自定义的),不能是%Log 、% log、%LOG、%s等;还有就是占位符个数必须大于等于对应的变量个数,反之会发生异常!
如果对您有一些意义,希望您给博主一些鼓励(点赞、关注、收藏),如果这个LogDog有BUG欢迎大家提出。
相关文章:
Android开发 LogDog (日志狗)V2.0.0
目录 一、简介 二、使用推荐 1、初始化LogDog 2、运行中如何更改初始化时的配置? 三、更改 四、新功能 1、Log过滤 2、自定义打印 3、提供占位符式打印 一、简介 LogDog V1.0 版本https://blog.csdn.net/Ym_quiet/article/details/130453232?spm1001.2014…...
JavaScript break
在JavaScript中,break语句用于提前退出或终止循环或switch语句。它允许您立即停止循环或switch的执行,并继续执行后面的代码。 以下是在循环中使用break的示例: javascript for (var i 0; i < 10; i) { if (i 5) { break; // 当…...
linux服务器使用curl命令处理常用es查询
目录 场景: 结果格式化显示: 验证服务启动: 单个参数变量查询: 分页查询: 日期范围查询: must中单个参数条件查询 must中多个参数条件查询 使用filter过滤查询 使用sort过滤查询 总结: 场景…...
Office Visio 2013安装
哈喽,大家好。今天一起学习的是Visio 2013的安装,这是一个绘制流程图的软件,用有效的绘图表达信息,比任何文字都更加形象和直观。Office Visio 是office软件系列中负责绘制流程图和示意图的软件,便于IT和商务人员就复杂…...
C++ 私有析构函数的作用
如果一个类的析构函数声明为私有(private),其他对象或函数将无法直接调用析构函数。这意味着如果你尝试使用delete操作符删除该类的对象,将会导致编译错误,因为析构函数是不可访问的。 将析构函数声明为私有是一种防止…...
【C++】deque的用法
目录 一、容器适配器二、deque的介绍三、deque的使用及缺陷1、deque的构造函数2、deque的元素访问接口3、deque的 iterator的使用4、deque的增删查改4、deque的缺陷5、为什么选择deque作为stack和queue的底层默认容器 一、容器适配器 在了解deque前,我们先讲一讲什…...
Live800:智能客服有哪些未来发展趋势?
智能客服,也称智能问答系统,是一种利用机器学习、自然语言处理等技术实现自主询问、自主应答、自主维护的自动化系统。它们可以通过文字形式,为用户提供个性化、一对一的服务,避免了人工客服的人力成本和等待时间。 未来ÿ…...
【一】Java SE 基础
文章目录 一、初始Java1.1 什么是Java1.2 Java的特点1.3 第一个Java程序 二、数据类型与变量2.1 基本数据类型2.2 基本数据类型对应的包装类2.3 变量2.4 类型转换2.5 字符串类型及其与数字之间的转换 三、运算符3.1 算术运算符3.2 赋值运算符3.3 关系运算符3.4 逻辑运算符3.5 位…...
Linux防火墙学习笔记2
iptables是什么? 1)iptables 不是防火墙,是防火墙用户代理。 2)用于把用户的安全设置添加到“安全框架”中。 3)“安全框架”是防火墙。 4)安全框架的名称是netfilter。 5)netfilter位于内…...
Linux下MongDB定时备份方案
1. 安装crontabs 首先安装crontabs yum install crontabs 2. 创建备份目录 [rootlocalhost data]# mkdir -p /data/backup/mongo/mongodb_bak_tmp [rootlocalhost data]# mkdir -p /data/backup/mongo/mongodb_bak_path 3. 创建MongoDB备份shell脚本 有密码: …...
长尾词挖掘,长尾词的优化方法有哪些
我们都知道,长尾词能给我们带来较高的流量和转化率,且优化难度低,成本低。今天就来分享长尾词的优化方法。 首先需要挖掘长尾词,挖掘长尾词的方法以下3种比较实用: 1、使用长尾词挖掘工具 可以通过第三方工…...
JUC基础-0601
6 多线程锁 6.1 锁的八个问题演示 class Phone {public static synchronized void sendSMS() throws Exception {//停留4秒TimeUnit.SECONDS.sleep(4);System.out.println("------sendSMS");}public synchronized void sendEmail() throws Exception {System.out.p…...
bash特性
bash bash是一个命令处理器,运行在文本窗口zh哦那个,执行用户输入的命令。 1、bash特性–历史命令 保留用户的历史执行的命令,可以使用history查看之前执行过的命令 #通过$HISTORY查看保存的命令条数 echo $HISTORY #存放用户执行的历史…...
[Flink] Flink On Yarn(yarn-session.sh)启动错误
在Flink上启动 yarn-session.sh时出现 The number of requested virtual cores for application master 1 exceeds the maximum number of virtual cores 0 available in the Yarn Cluster.错误。 版本说明: Hadoop: 3.3.4 Flink:1.17.1 问题…...
玩转css逐帧动画,努力成为更优质的Ikun~
🎉 一、前言 css3的animation想必大家都知道吧,那 steps 逐帧动画你知道吗?对于我来说,实际工作及练习中也很少用到这种跳跃式变化的动画,而它start和end的解释又比较“不说人话”,以前用到steps动画的时候…...
Linux Capabilities
Linux Capabilities是一种细粒度的权限管理机制,用于将root用户的特权划分为具体的功能集。它允许将部分root特权授予非root进程。 可以在shell中运行: man capabilities将显示capability man page,其中包含有关Linux功能的详细信息。 文章目录 什么是CapabilitiesLinux Cap …...
【自制C++深度学习框架】前言
KuiperCourse 介绍 此GitHub项目是一个初学者的深度学习框架,使用C编写,旨在为用户提供一种简单、易于理解的深度学习实现方式。以下是本项目的主要特点和功能: 计算图:使用计算图来描述深度学习模型的计算过程,利用计…...
【高危】泛微 e-cology9 存在任意用户登录漏洞
漏洞描述 泛微协同管理应用平台(e-cology)是一套企业大型协同管理平台。 泛微e-cology9部分版本中存在前台任意用户登录漏洞,由于系统默认配置固定密钥进行用户身份验证。 当存在/mobile/plugin/1/ofsLogin.jsp文件时(可能通过插件方式安装࿰…...
1TB文本的实时全文检索系统搭建
1个T的文本是多大呢?1TB 1000GB,1GB是10亿,1TB就是1万亿字节。如果是英文字符,1TB文本就是1万亿个英文字符,如果是中文字符而且都是UTF8格式,1个中文字符占3个字节,1TB文本是3333亿中文字符&am…...
RHCA---DO477---变量实验
实验目的如下: 1. 环境准备: 使用命令lab inventory-variables start初始化环境 2. 进入/home/student/git-repos目录克隆下载http://git.lab.example.com:8081/git/inventory-variables.git 3. 将目录下yaml文件内容以group_vars形式修改 4. 部署并将修改后ansible-playbook代…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
