[发明专利]一种避免重复日志输出的处理方法及系统有效
申请号: | 201611130080.8 | 申请日: | 2016-12-09 |
公开(公告)号: | CN106777049B | 公开(公告)日: | 2021-01-01 |
发明(设计)人: | 李从章 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F16/174 | 分类号: | G06F16/174;G06F16/18 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 许美红 |
地址: | 430073 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 避免 重复 日志 输出 处理 方法 系统 | ||
1.一种避免重复日志输出的处理方法,其特征在于,包括以下步骤:
S1、在日志记录系统中,调用日志写入接口函数传入当前日志信息,并为当前日志信息添加参数唯一标识;
步骤S1中日志写入接口函数为:
定义日志写入接口函数,函数的输入参数包括:日志等级、日志信息、参数唯一标识,日志写入接口函数末尾能增加日志参数;
S2、生成并打开新日志文件,获取日志记录系统中的日志列表,比较当前日志信息和日志列表中现有的日志信息的参数唯一标识,若不存在相同的参数唯一标识,则向新日志文件中写入当前日志信息;若存在相同的参数唯一标识,则表示当前日志信息已经存在于现有日志文件中,对当前日志信息进行过滤处理;
步骤S2中对当前日志信息进行过滤处理的方法具体为:
判断日志列表中存在的当前日志信息是否过期:
若过期,则向新日志文件中写入当前日志信息;
若未过期,通过当前日志信息更新现有日志文件,检测当前日志信息的长度,若当前日志信息长度大于日志长度设定值,则从末尾截断当前日志信息,使其长度满足日志长度设定值;若当前日志信息的长度小于日志长度设定值,则在当前日志信息末尾添加空格,使其满足日志长度设定值;
当调用日志写入接口函数记录日志信息msg的时候,需要保存或者更新该条msg日志的相关信息,为下次记录该条msg时提供操作依据;日志相关信息通过结构体stLogMsg和stLogFile进行记录;
stLogMsg结构体中包括:
日志标识id、该日志最后记录时间nSecLastRecord、该日志记录的位置nSeekPos、该日志行nRow、该日志长度nMesLen、该日志记录的次数nRecordCnt;
stLogFile结构体中包括:
日志文件的行数nRows、某一日志的最新记录与上条记录的最大时间间隔nSecExceed、某一日志的最新记录与上条记录的最大行数间隔nRowExceed;
S3、关闭新日志文件,完成重复日志信息的处理。
2.根据权利要求1所述的避免重复日志输出的处理方法,其特征在于,步骤S2中生成新日志文件时,按照日期生成日志文件的名称,并将新日志文件的名称添加到日志列表,其方法为:
通过当前的日期生成日志文件的名称,将其与stLogMsg结构体中的日志文件名称比较,如果相同,则不做处理;如果不同,表示是不同的日志文件,则清理stLogMsg结构体中的日志列表中保存的所有日志信息,并给stLogMsg结构体中的日志文件名称设置新的日志文件名。
3.根据权利要求1所述的避免重复日志输出的处理方法,其特征在于,步骤S2中写入日志信息的方法具体为:调用fseek函数把文件指针的位置指向日志文件的末尾,使用fputs函数往日志文件中写入日志信息。
4.根据权利要求1所述的避免重复日志输出的处理方法,其特征在于,判断日志列表中存在的当前日志信息是否过期的方法具体为:
若stLogFile::nRows-stLogMsg::nRow=stLogFile::nRowExceed,则表示当前日志信息对应的上一次日志信息过期。
5.根据权利要求1所述的避免重复日志输出的处理方法,其特征在于,本方法中的参数唯一标识为日志错误代码。
6.一种避免重复日志输出的处理系统,其特征在于,包括:
日志写入接口函数调用单元,用于在日志记录系统中,调用日志写入接口函数传入当前日志信息,并为当前日志信息添加参数唯一标识;
日志写入接口函数为:
定义日志写入接口函数,函数的输入参数包括:日志等级、日志信息、参数唯一标识,日志写入接口函数末尾能增加日志参数;
日志信息过滤单元,用于生成并打开新日志文件,获取日志记录系统中的日志列表,比较当前日志信息和日志列表中现有的日志信息的参数唯一标识,若不存在相同的参数唯一标识,则向新日志文件中写入当前日志信息;若存在相同的参数唯一标识,则表示当前日志信息已经存在于现有日志文件中,对当前日志信息进行过滤处理;
对当前日志信息进行过滤处理的方法具体为:
判断日志列表中存在的当前日志信息是否过期:
若过期,则向新日志文件中写入当前日志信息;
若未过期,通过当前日志信息更新现有日志文件,检测当前日志信息的长度,若当前日志信息长度大于日志长度设定值,则从末尾截断当前日志信息,使其长度满足日志长度设定值;若当前日志信息的长度小于日志长度设定值,则在当前日志信息末尾添加空格,使其满足日志长度设定值;
当调用日志写入接口函数记录日志信息msg的时候,需要保存或者更新该条msg日志的相关信息,为下次记录该条msg时提供操作依据;日志相关信息通过结构体stLogMsg和stLogFile进行记录;
stLogMsg结构体中包括:
日志标识id、该日志最后记录时间nSecLastRecord、该日志记录的位置nSeekPos、该日志行nRow、该日志长度nMesLen、该日志记录的次数nRecordCnt;
stLogFile结构体中包括:
日志文件的行数nRows、某一日志的最新记录与上条记录的最大时间间隔nSecExceed、某一日志的最新记录与上条记录的最大行数间隔nRowExceed;
日志输出单元,用于关闭新日志文件,完成重复日志信息的处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611130080.8/1.html,转载请声明来源钻瓜专利网。