一种公共医疗系统的日志处理方法

文档序号:6636498阅读:645来源:国知局
一种公共医疗系统的日志处理方法
【专利摘要】本发明公开了一种公共医疗系统的日志处理方法,采用动态链接库负责根据用户设置的查询条件从日志存储系统中过滤符合条件的日志,日志浏览器通过调用其获取日志接口获取并显示日志。方便Web版日志浏览器对应的服务器调用,Web版日志浏览器对应的服务器对动态链接库的调用在其内部都转发给相应的动态链接库。在这种方案中,动态链接库不会一直常驻内存,也不会一直不断地访问日志存储系统。从而获得日志系统高效、稳定的运作效果。
【专利说明】一种公共医疗系统的日志处理方法

【技术领域】
[0001]本发明涉及公共医疗系统领域,具体是一种公共医疗系统的日志处理方法。

【背景技术】
[0002]日志系统是医疗公共软件平台的一个重要的功能,它记录了基于医疗公共软件平台开发的医疗软件系统的行为。在医疗系统开发阶段,日志系统的目标用户是开发工程师和测试工程师,但是当产品投入到生产环境中,使用日志的用户除了开发工程师之外,还会包括服务工程师,软件用户,管理员等。不同类型的用户对日志系统的要求不同,造成日志开发过程和管理过程复杂性高。
[0003]常规的日志系统为了支持Web版日志浏览器增加了两个服务进程,无论日志浏览器有没有运行,这两个进程都会一直运行,浪费系统资源。而且在实际应用中存在更为严重的问题是:由于系统在运行时一直都会有日志输出,日志解析服务器也就在一直不停地解析,如此反复的读取日志文件,插入到数据库,占用大量的CPU资源和磁盘1/0,严重影响了系统性能。此外,在支持日志浏览器实时显示最新日志时,日志解析服务器解析日志的速度要慢于日志服务器的更新速度,导致用户看到的日志并不是最新的。
[0004]
【发明内容】
本发明的目的是提供一种公共医疗系统的日志处理方法,以解决现有技术公共医疗系统中日志开发过程和管理过程复杂性高的问题。
[0005]为了达到上述目的,本发明所采用的技术方案为:
一种公共医疗系统的日志处理方法,其特征在于:将医疗公共软件平台的日志系统建构为日志客户端、日志服务端和Web版的日志浏览器,其中日志客户端为医疗应用程序的开发者提供简单灵活的接口,将其需要记录的日志发送到日志服务端;日志服务端是一个可执行程序,用于接收日志客户端发送过来的日志并将其存储;日志浏览器是一个可执行程序,用于为用户提供日志查找服务;
采用C++动态链接库根据用户设置的查询条件从日志存储系统中过滤符合条件的日志,日志浏览器通过调用其获取日志接口获取并显示日志,C#动态链接库对C++动态链接库包装了一层C#接口,方便Web版日志浏览器对应的服务器调用,日志浏览器对应的服务器对C#动态链接库的调用在其内部转发给C++动态链接库,C++动态链接库和C#动态链接库不会一直常驻内存,也不会一直不断地访问日志存储系统,两个动态链接随着日志浏览器的启动而被加载到内存中,随着日志浏览器调用其获取日志接口而开始访问日志存储系统,过滤符合条件的日志,随着日志浏览器的退出而退出。
[0006]本发明大大简化了日志浏览器的设计与实现,日志浏览器只需要将用户设置的查询条件组合成SQL语句并发送给日志浏览服务器,然后接收日志浏览服务器返回的日志并显示即可,避免了以往开发过程中存在的问题。

【专利附图】

【附图说明】
[0007]图1为本发明日志系统功能图。
[0008]图2为本发明日志系统运作图。

【具体实施方式】
[0009]如图1所示,将医疗公共软件平台的日志系统建构为日志客户端、日志服务端和日志浏览器三个模块构成。其中日志客户端为医疗应用程序的开发者提供简单灵活的接口,将其需要记录的日志发送到日志服务端;日志服务端是一个可执行程序,用于接收日志客户端发送过来的日志并将其存储;日志浏览器也是一个可执行程序,用于为开发工程师、测试工程师、服务工程师等用户提供高效、快速准确的日志查找服务。
[0010]采用C++动态链接库负责根据用户设置的查询条件从日志存储系统中过滤符合条件的日志,日志浏览器通过调用其获取日志接口获取并显示日志。C#动态链接库只是对C++动态链接库包装了一层C#接口,方便Web版日志浏览器对应的服务器调用,Web版日志浏览器对应的服务器对C#动态链接库的调用在其内部都转发给C++动态链接库。在这种方案中,C++动态链接库和C#动态链接库不会一直常驻内存,也不会一直不断地访问日志存储系统。两个动态链接随着日志浏览器的启动而被加载到内存中,随着日志浏览器调用其获取日志接口而开始访问日志存储系统,过滤符合条件的日志,随着日志浏览器的退出而退出。
[0011]本发明可以实现:
1.可以输出不同级别的日志
根据日志的重要性,可以将日志划分不同级别日志。
[0012]2.不同级别的日志服务的打开与关闭是可配的
3.以功能模块为单位记录日志,每个功能模块的不同级别的日志服务的打开与关闭都是可配的
4.建立日志浏览器
医疗软件系统在运行时会产生大量的日志,如果不借助专业的日志浏览器在这些日志中分析和发现问题犹如大海捞针,是不可取的。日志浏览器可以按模块,按日志输出时间,按输出日志的源代码文件名,按输出日志的函数名,按输出日志的代码在文件中所在的行数,按日志的描述检索和查看日志,然后以友好的方式将检索到的符合条件的日志呈现给用户。
[0013]5.日志系统的存储
基于医疗公共软件平台所开发的医疗软件系统的模块可能会运行在不同的机器和设备上,平台的需求需要将位于不同设备上的日志收集到一处进行存储,所以需要日志系统需要提供一个日志接收服务器用于接收日志并存储在工作站中。因为大型的医疗软件系统在同一时刻可能会有很多模块记录大量日志,所以日志服务器需要在占用尽可能少的资源的前提下,接受尽可能多的客户端的连接,存储尽可能多的日志。
[0014]6.日志客户端提供简单且灵活的接口
简单灵活的接口有利于降低使用者的学习成本和犯错概率,提高开发效率。
[0015]7.日志客户端可以跨平台
支持Windows, Linux等操作平台,医疗公共软件平台软件可能会运行在不同的操作系统和设备上,所以需要医疗公共软件平台的日志系统的客户端能够支持相应的操作系统和设备。
[0016]8.日志客户端建立线程安全
一般情况下,日志系统的客户端工作在多线程模式下,所以日志客户端必须做好线程间的同步工作,提供线程安全的接口使多个线程可以同时记录日志。
[0017]具体实施例:
如图2所示。本发明可按以下步骤进行:
日志的服务端:
1.日志服务端启动后向操作系统申请一个socket专门用于接受日志客户端的连接请求,使该socket处于监听状态并注册连接建立时被调用的回调函数。然后启动一个次线程用于事件循环,主线程用于接收用户输入的命令。
[0018]2.当有日志客户端发起连接,连接建立后,次线程会调用I中注册的回调函数,在该回调函数中会注册用于读取数据的回调函数。
[0019]3.当日志客户端向日志服务端发送数据到达服务端时,次线程会调用2中注册的回调函数,在该回调函数中,会将接收到的数据(日志)存储。
[0020]由于是异步套接字,当有多个连接时以上三种状态都会存在,但对于单一连接,以上三种状态是按序发生的。
[0021]日志浏览器端:
1、支持日志浏览器实时显示,日志服务端把接收到的日志写入到文件的同时放到共享内存中。由于在内存中操作,速度很快,且不会给日志服务端增加过多的负担。
[0022]2、在日志服务端在初始化时开辟一块共享内存,在接收到日志的时候拷贝到共享内存。
【权利要求】
1.一种公共医疗系统的日志处理方法,其特征在于:将医疗公共软件平台的日志系统建构为日志客户端、日志服务端和Web版的日志浏览器,其中日志客户端为医疗应用程序的开发者提供简单灵活的接口,将其需要记录的日志发送到日志服务端;日志服务端是一个可执行程序,用于接收日志客户端发送过来的日志并将其存储;日志浏览器是一个可执行程序,用于为用户提供日志查找服务; 采用C++动态链接库根据用户设置的查询条件从日志存储系统中过滤符合条件的日志,日志浏览器通过调用其获取日志接口获取并显示日志,C#动态链接库对C++动态链接库包装了一层C#接口,方便Web版日志浏览器对应的服务器调用,日志浏览器对应的服务器对C#动态链接库的调用在其内部转发给C++动态链接库,C++动态链接库和C#动态链接库不会一直常驻内存,也不会一直不断地访问日志存储系统,两个动态链接随着日志浏览器的启动而被加载到内存中,随着日志浏览器调用其获取日志接口而开始访问日志存储系统,过滤符合条件的日志,随着日志浏览器的退出而退出。
【文档编号】G06F9/44GK104408136SQ201410709393
【公开日】2015年3月11日 申请日期:2014年11月26日 优先权日:2014年11月26日
【发明者】宋波, 冷浩, 卢栋梁, 刘全华, 李友涛, 陈金彪, 卢秀良, 洪增国, 周明 申请人:合肥晶奇电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1