System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及日志管理,尤其涉及一种基于logrus的日志转存方法、装置、设备及存储介质。
技术介绍
1、logrus是go语言中一款流行的开源日志库,设计用于提供灵活性、可定制性和高性能的日志记录服务,它支持结构化日志、hook机制和不同的日志级别,适用于各种应用场景,包括应用程序日志记录、分布式系统、调试和性能优化等,成为go语言生态系统中被广泛采用的日志记录工具。而在5g领域,随着网元虚拟化的大力推进,越来越多的网元通过golang语言来重构,并使用logrus作为其日志记录组件。随着网元的不断迭代和升级,原来网元通过logrus写本地文件并定期压缩的方案逐渐带来一个极大的弊端:日志系统会占用系统极高的io读写,导致其他服务异常,比如mysql的慢查询等等。因此,为了解决日志带来的高io占用问题,需要将logrus的日志转储到外部的客户端中。
2、常规的日志转存方案仅仅适用于新开发的系统,在开发阶段已经设计好如何处理日志,而对旧的系统改造优化时,由于涉及日志打印的代码太多而导致重构工作量太大,尤其面对复杂网元时重构几乎不可能完成。
技术实现思路
1、本专利技术实施例所要解决的技术问题是:提供了一种基于logrus的日志转存方法,通过扩展hook方式,实现了日志文件到外部客户端的转存,在旧系统改造优化时更加便捷,提高了日志转存的转存效率。
2、为了解决上述技术问题,第一方面,本专利技术实施例提供一种基于logrus的日志转存方法,包括:
3、
4、调用hook函数将日志文件传入到hook结构体中;其中,所述日志文件包含日志文件的日志级别;
5、当所述日志文件的日志级别达到预设的转存级别时,将所述日志文件传入到目标客户端。
6、进一步的,所述将所述日志文件传入到目标客户端之前,还包括:
7、将所述日志文件的数据结构类型转换为字典结构。
8、进一步的,所述调用hook函数将日志文件传入到hook结构体中,包括:
9、构造hook结构体;
10、获取日志文件信息;其中,所述日志文件信息包括日志记录时间、日志级别和日志内容;
11、调用hook函数将所述日志文件信息传入到所述hook结构体中。
12、进一步的,所述当所述日志文件的日志级别达到预设的转存级别时,将所述日志文件传入到目标客户端,包括:
13、判断所述日志文件的日志级别是否达到预设的转存级别;
14、当所述日志文件的日志级别达到预设的转存级别时,将所述日志文件传入到目标客户端。
15、进一步的,所述hook结构体中包括目标客户端链接,则,所述将所述日志文件传入到目标客户端,包括:
16、获取目标客户端链接,将所述日志文件发送到所述目标客户端链接;
17、调用目标客户端的api,将所述日志文件写入所述目标客户端。
18、进一步的,所述将所述日志文件传入到目标地址之后,还包括:
19、接收所述目标客户端发出的日志写入响应消息。
20、为了解决上述技术问题,第二方面,本专利技术实施例提供一种基于logrus的日志转存装置,包括:
21、接收模块,用于接收到日志写入请求;
22、调用模块,用于调用hook函数将日志文件传入到hook结构体中;其中,所述日志文件包含日志文件的日志级别;
23、转存模块,用于当所述日志文件的日志级别达到预设的转存级别时,将所述日志文件传入到目标地址。
24、进一步的,所述将所述日志文件传入到目标地址之前,还包括:
25、将所述日志文件的数据结构类型转换为字典结构。
26、为了解决上述技术问题,第三方面,本专利技术实施例提供一种电子设备,包括:
27、存储器,用于存储计算机程序;
28、处理器,用于执行所述计算机程序;
29、其中,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的基于logrus的日志转存方法。
30、为了解决上述技术问题,第四方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被执行时实现上述第一方面任一项所述的基于logrus的日志转存方法。
31、与现有技术相比,本专利技术实施例提供的一种基于logrus的日志转存方法,其有益效果在于:通过扩展hook方式,实现了日志文件到外部客户端的转存,在旧系统改造优化时更加便捷,减少了开发者的代码重构量,提高了日志转存的转存效率。
本文档来自技高网...【技术保护点】
1.一种基于Logrus的日志转存方法,其特征在于,包括:
2.如权利要求1所述的基于Logrus的日志转存方法,其特征在于,所述将所述日志文件传入到目标客户端之前,还包括:
3.如权利要求1所述的基于Logrus的日志转存方法,其特征在于,所述调用Hook函数将日志文件传入到Hook结构体中,包括:
4.如权利要求1所述的基于Logrus的日志转存方法,其特征在于,所述当所述日志文件的日志级别达到预设的转存级别时,将所述日志文件传入到目标客户端,包括:
5.如权利要求1所述的基于Logrus的日志转存方法,其特征在于,所述Hook结构体中包括目标客户端链接,则,所述将所述日志文件传入到目标客户端,包括:
6.如权利要求1所述的基于Logrus的日志转存方法,其特征在于,所述将所述日志文件传入到目标客户端之后,还包括:
7.一种基于Logrus的日志转存装置,其特征在于,包括:
8.如权利要求7所述的基于Logrus的日志转存装置,其特征在于,所述将所述日志文件传入到目标地址之前,还包括:
...【技术特征摘要】
1.一种基于logrus的日志转存方法,其特征在于,包括:
2.如权利要求1所述的基于logrus的日志转存方法,其特征在于,所述将所述日志文件传入到目标客户端之前,还包括:
3.如权利要求1所述的基于logrus的日志转存方法,其特征在于,所述调用hook函数将日志文件传入到hook结构体中,包括:
4.如权利要求1所述的基于logrus的日志转存方法,其特征在于,所述当所述日志文件的日志级别达到预设的转存级别时,将所述日志文件传入到目标客户端,包括:
5.如权利要求1所述的基于logrus的日志转存方法,其特征在于,所述hook结构体中包括目标客户端链...
【专利技术属性】
技术研发人员:朱葱葱,邱涛,程通,张向裕,黄强,
申请(专利权)人:广州广哈通信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。