System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别是涉及一种日志混淆方法、装置、计算机设备和存储介质。
技术介绍
1、随着移动网络速度越来越快,rtc(real-time communications)实时通信业务在各种应用场景下全面开花,特别是近两年电商、教育等行业直播的普及,以及各种设备之间的音视频通话场景越来越常见。
2、实时音视频通信是一个十分复杂的系统,从功能流程上包含了采集、编码、前后处理、传输、解码、缓冲、渲染等。其特点主要体现在实时性要求高,处理流线长,如果通过明文日志来追踪会产生性能与追溯困难的问题。
3、android音视频客户端中实时日志的数据远超普通应用日志,大量模板相似但变量较多的日志占据50%上,当接入的客户端变多时会变得更多。这部分日志单条长度大,写入时间长;运行时间过长后难免会触发大量的io操作,甚至会影响到程序的正常运行。日志的明文写入的问题会在传输过程中暴露出来,为了数据安全需要对其进行加密混淆操作。
4、当前互联网上已存在使用mmap作为写入方式的日志库:
5、(1)logan:此库功能完整,配有后台和其他平台对应的库,但是其性能在写入过多日志时会有所降低,另外上传逻辑/文件写入逻辑定制较深,修改较为麻烦。
6、(2)xlog:依赖的文件较多,项目体积较大。它的优点是性能上比logan更好,缺点是对于不同字符较多的日志压缩率有限,且由于其二次开发难度较高,无法在对应业务方面做出定制功能。
技术实现思路
1、本申请
2、第一方面,一种日志混淆方法,包括:
3、s1,加载预先生成的mapping文件,所述mapping文件中写有用于字符简单化转换的键值对信息;
4、s2,获取明文日志,将所述明文日志的日志内容划分为多个部分;
5、s3,根据所述mapping文件,对日志内容的特定部分进行字符简单化转换;
6、s4,根据预先定义的日志内容的每个部分的字节数对应规则,将日志内容的每个部分分别转换为字节表示,并将转换得到的每个字节进行保存,得到所述明文日志的相应混淆文件。
7、上述方案中,可选地,所述多个部分包括输出等级、输出来源、输出次数、tag长度、tag内容、线程信息长度、线程信息内容、日志内容长度和日志内容文本;所述特定部分包括tag内容、线程信息内容和日志内容文本。
8、上述方案中,可选地,所述输出等级、输出来源和输出次数均对应1个字节,所述tag长度、线程信息长度和日志内容长度均对应2个字节。
9、上述方案中,可选地,步骤s4中所述将转换得到的每个字节进行保存,包括:
10、将转换得到的每个字节写入到bytestream缓冲区中;
11、当所述bytestream缓冲区中的字节长度达到预设长度阈值,将所述bytestream缓冲区中的所有字节放置到memory map中进行保存;
12、利用flush方法将memory map中的数据刷新到一个tck文件中。
13、上述方案中,可选地,所述方法还包括:
14、s5,提取所述明文日志的相应混淆文件,根据所述预先定义的日志内容的每个部分的字节数对应规则和mapping文件,对所述明文日志的相应混淆文件进行还原。
15、上述方案中,可选地,利用代码插桩和gradle transform技术,实现对日志内容的特定部分进行字符简单化转换,以及实现将日志内容的每个部分分别转换为字节表示。
16、第二方面,一种日志混淆装置,包括:
17、mapping文件加载模块,用于加载预先生成的mapping文件,所述mapping文件中写有用于字符简单化转换的键值对信息;
18、明文日志获取模块,用于获取明文日志,将所述明文日志的日志内容划分为多个部分;
19、字符简化模块,用于根据所述mapping文件,对日志内容的特定部分进行字符简单化转换;
20、字节转换模块,用于根据预先定义的日志内容的每个部分的字节数对应规则,将日志内容的每个部分分别转换为字节表示,并将转换得到的每个字节进行保存,得到所述明文日志的相应混淆文件。
21、第三方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述方法的步骤。
22、第四方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述方法的步骤。
23、相比现有技术,本申请至少具有以下有益效果:
24、本申请实施例所提供的日志混淆方法,通过首先将明文日志的日志内容划分为多个部分,根据预先生成的mapping文件,对日志内容的特定部分进行字符简单化转换,然后根据预先定义的日志内容的每个部分的字节数对应规则,将日志内容的每个部分分别转换为字节表示,并将转换得到的每个字节进行保存;能够实现通过mapping文件,对明文日志中的各种较长字符信息进行简单化、压缩化和混淆化处理,大大压缩了日志大小,还能够对明文日志进行加密;同时,通过将日志内容分成多个字段,并使用字节来表示每个字段,可以避免日志中使用字符形式的表示方式,从而减少了日志中复杂字符的数量,对于原本含有不同字符较多的日志,同样可以有效地保证日志的压缩率,减小日志文件的大小。
本文档来自技高网...【技术保护点】
1.一种日志混淆方法,其特征在于,包括:
2.根据权利要求1所述的日志混淆方法,其特征在于,所述多个部分包括输出等级、输出来源、输出次数、TAG长度、TAG内容、线程信息长度、线程信息内容、日志内容长度和日志内容文本;所述特定部分包括TAG内容、线程信息内容和日志内容文本。
3.根据权利要求2所述的日志混淆方法,其特征在于,所述输出等级、输出来源和输出次数均对应1个字节,所述TAG长度、线程信息长度和日志内容长度均对应2个字节。
4.根据权利要求1所述的日志混淆方法,其特征在于,步骤S4中所述将转换得到的每个字节进行保存,包括:
5.根据权利要求1所述的日志混淆方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的日志混淆方法,其特征在于,利用代码插桩和GradleTransform技术,实现对日志内容的特定部分进行字符简单化转换,以及实现将日志内容的每个部分分别转换为字节表示。
7.一种日志混淆装置,其特征在于,包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述方法的步骤。
...【技术特征摘要】
1.一种日志混淆方法,其特征在于,包括:
2.根据权利要求1所述的日志混淆方法,其特征在于,所述多个部分包括输出等级、输出来源、输出次数、tag长度、tag内容、线程信息长度、线程信息内容、日志内容长度和日志内容文本;所述特定部分包括tag内容、线程信息内容和日志内容文本。
3.根据权利要求2所述的日志混淆方法,其特征在于,所述输出等级、输出来源和输出次数均对应1个字节,所述tag长度、线程信息长度和日志内容长度均对应2个字节。
4.根据权利要求1所述的日志混淆方法,其特征在于,步骤s4中所述将转换得到的每个字节进行保存,包括:
5.根据权利要求1所述的日志...
【专利技术属性】
技术研发人员:王子灿,
申请(专利权)人:北京安信智通科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。