[发明专利]一种基于程序日志的程序运行状态监控的方法有效
申请号: | 202110394431.0 | 申请日: | 2021-04-13 |
公开(公告)号: | CN112799920B | 公开(公告)日: | 2021-08-17 |
发明(设计)人: | 朱悬宁;张锐;张永洁 | 申请(专利权)人: | 上海万得宏汇信息技术有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30;G06F9/52;G06F16/18;G06Q40/04 |
代理公司: | 上海申汇专利代理有限公司 31001 | 代理人: | 徐俊 |
地址: | 200127 上海市浦东新区中国(*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 程序 日志 运行 状态 监控 方法 | ||
1.一种基于程序日志的程序运行状态监控的方法,其特征在于,用于实现在Log4cxx基本日志功能的基础上同时实现即时报警功能,包括以下步骤:
步骤1、客户端投递日志,具体包括以下步骤:
步骤101、用户代码调用日志接口,填写相关日志数据;
步骤102、判断日志模块是否完成初始化,若日志模块未完成初始化,则放弃提交日志数据,结束客户端投递日志流程;若日志模块已完成初始化,则经由日志接口提交日志数据;
步骤103、检查提交的日志数据是否符合输入格式要求,如符合格式要求,则进入下一步;如不符合则放弃提交日志数据,结束客户端投递日志流程;
步骤104、日志模块获取普通队列锁,用于获得独占访问普通日志数据队列的权限;随后,日志模块将上一步获得的日志数据添加到普通日志数据队列中;
步骤105、日志模块释放普通队列锁,放开对普通日志数据队列的独占访问;
步骤106、普通队列锁被日志模块释放后,日志模块触发普通数据队列的投递事件EventA,以让后面客户端中另一个专门处理普通日志数据的工作线程WorkA收到投递事件EventA的通知后处理数据;
步骤107、预先在配置文件中设定相应的报警配置,将日志数据与报警配置相匹配,判断是否满足报警条件,若满足报警条件,进入步骤108,若不满足报警条件,进入步骤111;
步骤108、日志模块获取报警队列锁,来独占访问报警数据队列;
步骤109、日志模块将日志数据添加到报警日志数据队列后,释放报警队列锁,以放开对该报警日志数据队列的独占访问;
步骤110、报警队列锁被释放后,日志模块触发报警数据队列的投递事件EventB,以让后面另一个专门处理报警日志数据的工作线程WorkB收到通知后处理数据,随后进入步骤111;
步骤111、结束客户端投递日志流程;
步骤2、客户端处理日志,具体包括以下步骤:
步骤201、日志模块初始化普通日志数据队列、报警日志数据队列,初始化并启动处理普通日志数据的工作线程WorkA、处理报警日志数据的工作线程WorkB;
步骤202、工作线程WorkA及工作线程WorkB判断日志模块的工作结束标志是否为True,如果为True,则结束工作线程WorkA及工作线程WorkB运行,否则,进入步骤203;
步骤203、工作线程WorkA等待普通数据队列的投递事件EventA的通知,若工作线程WorkA获得投递事件EventA的通知后,进入步骤204;
工作线程WorkB等待报警数据队列的投递事件EventB的通知,若工作线程WorkB获得投递事件EventB的通知后,进入步骤205;
步骤204、工作线程WorkA对普通日志数据进行处理,包括以下步骤:
步骤2041、工作线程WorkA获得普通队列锁,独占访问普通日志数据队列;
步骤2042、工作线程WorkA从普通日志数据队列中取出要处理的日志数据后,释放普通队列锁;
步骤2043、工作线程WorkA记录取出的日志数据,完成后返回到步骤202;
步骤205、工作线程WorkB对报警日志数据进行处理,包括以下步骤:
步骤2051、工作线程WorkB获得报警队列锁,独占访问报警数据队列;
步骤2052、工作线程WorkB从报警数据队列中取出要处理的日志数据后,释放报警队列锁;
步骤2053、工作线程WorkB记录取出的日志数据后,对数据进行加密处理,从而得到加密报警日志数据;
步骤2054、工作线程WorkB通过HTTP POST方式发送加密报警日志数据到服务端,完成后返回步骤202;
步骤3、服务端处理日志,包括以下步骤:
步骤301、启动服务端程序后,初始化用于存放用户上报的日志数据的日志数据队列;随后启动接收工作线程及处理工作线程,由接收工作线程处理日志数据队列中的数据,并启动接收数据的HTTP服务;
步骤302、接收工作线程及处理工作线程进入工作循环,判断工作结束标志是否为True,如果为True,则结束接收工作线程及处理工作线程进入工作,否则进入步骤303;
步骤303、接收工作线程等待HTTP服务收到客户端上报的反馈通知,接收工作线程收到反馈通知后,进入步骤304;
处理工作线程等待投递事件EventC的通知,处理工作线程获得投递事件EventC的通知后,进入步骤305;
步骤304、接收工作线程接收加密报警日志数据,具体包括以下步骤:
步骤3041、接收工作线程调用HTTP服务的接口获取加密报警日志数据后,将加密报警日志数据投递到日志数据队列;
步骤3042、接收工作线程触发日志数据到达的投递事件EventC,以让处理工作线程收到投递事件EventC的通知后处理数据;
步骤3043、返回步骤302循环处理;
步骤305、处理工作线程处理加密报警日志数据,具体包括以下步骤:
步骤3051、处理工作线程从日志数据队列中取出需要被处理的加密报警日志数据后解密数据得到日志数据;
步骤3052、处理工作线程记录解密得到的日志数据,并向目标邮箱或者目标手机发送报警通知,随后返回步骤302。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海万得宏汇信息技术有限公司,未经上海万得宏汇信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110394431.0/1.html,转载请声明来源钻瓜专利网。