[发明专利]一种避免重复日志输出的处理方法及系统有效
申请号: | 201611130080.8 | 申请日: | 2016-12-09 |
公开(公告)号: | CN106777049B | 公开(公告)日: | 2021-01-01 |
发明(设计)人: | 李从章 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F16/174 | 分类号: | G06F16/174;G06F16/18 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 许美红 |
地址: | 430073 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 避免 重复 日志 输出 处理 方法 系统 | ||
本发明公开了一种避免重复日志输出的处理方法及系统,该方法包括以下步骤:S1、在日志记录系统中,调用日志写入接口函数传入当前日志信息,并为当前日志信息添加参数唯一标识;S2、生成并打开新日志文件,获取日志记录系统中的日志列表,比较当前日志信息和日志列表中现有的日志信息的参数唯一标识,若不存在相同的参数唯一标识,则向新日志文件中写入当前日志信息;若存在相同的参数唯一标识,则表示当前日志信息已经存在于现有日志文件中,对当前日志信息进行过滤处理;S3、关闭新日志文件,完成重复日志信息的处理。本发明避免大量重复的消息充斥着整个日志文件,也避免了日志文件过于臃肿。
技术领域
本发明涉及系统日志文件处理技术领域,尤其涉及一种避免重复日志输出的处理方法及系统。
背景技术
程序发布到使用者的手上,可能还会存在一些bug,使用者不可能记得之前所做的操作或者很难描述问题,程序开发人员要修复这些bug通常很难,日志能够帮助开发者快速定位程序的bug。但是有时候会发现拿到日志文件非常大,有大量重复的一条或者几条消息充斥着整个日志文件,例如如果不是一个不会导致需要关闭程序的致命的error重复产生的时候,可能就会有大量的重复日志。
发明内容
本发明要解决的技术问题在于针对现有技术中日志文件有大量重复,重复处理耗费大量资源的缺陷,提供一种避免重复日志输出的处理方法及系统。
本发明解决其技术问题所采用的技术方案是:
本发明提供一种避免重复日志输出的处理方法,包括以下步骤:
S1、在日志记录系统中,调用日志写入接口函数传入当前日志信息,并为当前日志信息添加参数唯一标识;
步骤S1中日志写入接口函数为:
void log(int level,int code,const char*msg,...)
其中,level为日志等级,msg为日志信息,code为参数唯一标识,日志写入接口函数末尾能增加日志参数;
S2、生成并打开新日志文件,获取日志记录系统中的日志列表,比较当前日志信息和日志列表中现有的日志信息的参数唯一标识,若不存在相同的参数唯一标识,则向新日志文件中写入当前日志信息;若存在相同的参数唯一标识,则表示当前日志信息已经存在于现有日志文件中,对当前日志信息进行过滤处理;
步骤S2中对当前日志信息进行过滤处理的方法具体为:
判断日志列表中存在的当前日志信息是否过期:
若过期,则向新日志文件中写入当前日志信息;
若未过期,通过当前日志信息更新现有日志文件,检测当前日志信息的长度,若当前日志信息长度大于日志长度设定值,则从末尾截断当前日志信息,使其长度满足日志长度设定值;若当前日志信息的长度小于日志长度设定值,则在当前日志信息末尾添加空格,使其满足日志长度设定值;
当调用日志写入接口函数记录日志信息msg的时候,需要保存或者更新该条msg日志的相关信息,为下次记录该条msg时提供操作依据;日志相关信息通过结构体stLogMsg和stLogFile进行记录;
stLogMsg结构体中包括:
日志标识id、该日志最后记录时间nSecLastRecord、该日志记录的位置nSeekPos、该日志行nRow、该日志长度nMesLen、该日志记录的次数nRecordCnt;
stLogFile结构体中包括:
日志文件的行数nRows、某一日志的最新记录与上条记录的最大时间间隔nSecExceed、某一日志的最新记录与上条记录的最大行数间隔nRowExceed;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611130080.8/2.html,转载请声明来源钻瓜专利网。