一种嵌入式设备开发日志系统的制作方法

文档序号:7984587阅读:345来源:国知局
一种嵌入式设备开发日志系统的制作方法【专利摘要】本发明适用于嵌入式系统领域,提供了一种嵌入式设备开发日志系统,所述系统包括:嵌入设备端应用软件的设备端日志单元,以及位于服务器端,与所述设备端日志单元通信的服务端日志单元,其中:设备端日志单元,用于生成设备端应用软件的日志信息,将所述日志信息实时传输给所述服务端日志单元;服务端日志单元,用于接收并存储所述设备端日志单元传输的日志信息,根据配置文件输出所述日志信息。本发明实施例可以满足在嵌入式系统开发、调试过程中实时查看并保存日志信息,同时,单个开发人员在工位上即可对多台嵌入式设备进行开发调试,很好的支持了软件开发的多人化、模块化。【专利说明】一种嵌入式设备开发日志系统【
技术领域
】[0001]本发明适用于嵌入式系统领域,尤其涉及一种嵌入式设备开发日志系统。【
背景技术
】[0002]随着电子技术的不断发展,嵌入式系统的应用越来越广泛,越来越多的领域开始使用嵌入式系统。由于嵌入式设备内部资源有限,绝大多数嵌入式设备采用串口进行开发、调试工作。当前广泛使用的Log模块一般支持串口实时输出和嵌入式系统本地文件存储两种方式。[0003]由于嵌入式系统资源有限,采用本地存储仅能保存有限大小的日志文件,一般不怎么使用。使用串口实时日志可以满足单板调试工作,但是如果系统是复杂的多个终端,多板卡联调和系统组网模式,由于串口的局限性,每台机器只能连接I?2台嵌入式板卡,每台机器也只能允许一人占用,这大大制约了开发和调试的工作效率。而且随着软件模块化的进程日渐推进,嵌入式开发由过去的单人开发转变为多人开发,进一步加剧了调试资源严重不足的问题。[0004]当前已有的网络日志系统都是基于设备运行角度考虑的,一般的流程是首先将日志输出到特定文件,到达一定时间后进行压缩、传输。这样的网络日志系统实时性差,而在嵌入式系统软件开发、调试中,开发人员都依靠日志信息进行故障的分析和定位。如果使用当前已有的日志系统无法在故障现象出现时实时的提供日志信息,开发人员只有在系统故障现象结束后一段时间才能从设备获取故障时刻和的日志文件,进而进行分析严重影响故障的分析、定位和排除,很大程度上拖延了项目的进度。【
发明内容】[0005]本发明实施例提供了一种嵌入式设备开发日志系统,旨在解决现有网络日志系统实时性差,严重影响故障的分析、定位和排查的问题。[0006]本发明实施例是这样实现的,本发明实施例是这样实现的,一种嵌入式设备开发日志系统,所述系统包括:[0007]嵌入设备端应用软件的设备端日志单元,以及位于服务器端,与所述设备端日志单元通信的服务端日志单元,其中:[0008]设备端日志单元,用于生成设备端应用软件的日志信息,将所述日志信息实时传输给所述服务端日志单元;[0009]服务端日志单元,用于接收并存储所述设备端日志单元传输的日志信息,根据配置文件输出所述日志信息。[0010]本发明实施例可以满足在嵌入式系统开发、调试过程中实时查看并保存日志信息,同时,单个开发人员在工位上即可对多台嵌入式设备进行开发调试,很好的支持了软件开发的多人化、模块化。【专利附图】【附图说明】[0011]图1表示嵌入式设备开发日志系统的结构图;[0012]图2表示嵌入式设备开发日志系统服务器端的实现流程图。【具体实施方式】[0013]在本发明实施例中,通过在设备端日志单元生成日志信息,在服务端日志单元控制日志信息的输出,从而达到日志信息的实时性传输。[0014]图1示出了本发明实施例提供的嵌入式设备开发的日志系统结构,为了便于说明,仅示出了本发明实施例相关的部分。[0015]设备端日志单元11生成设备端应用软件的日志信息,将日志信息实时传输给服务端日志单元12。[0016]在本发明是实例中,设备端日志单元11提供设备应用软件日志信息的控制性收集工功能。在设计、实现中严格遵循可移植操作系统接口(PortableOperatingSystemInterface,P0SIX)标准,从而使得设备端日志单元11可以很方便的移植到其他遵循POSIX标准的操作系统中,保证了设备端日志单元11可以在多种嵌入式设备平台中的使用。[0017]在本发明实施例中,日志信息收集模块111收集设备端应用软件的日志信息,日志信息传输模块112将日志信息通过网络实时传输给服务端日志单兀12。[0018]在本发明实施例中,日志信息传输模块112可依据配置将程序员需要的软件运行消息通过网络实时传输到指定的服务端日志单元12,考虑到串口调试功能的简单、易用、可靠性,本发明保留了原始的串口实时输出日志信息的方式。[0019]作为本发明的优选实施例,故障定位信息添加模块113对单个函数的入口、出口自动添加日志信息、生成时间、所在文件名称,以及输出行的位置信息。[0020]在本发明实施例中,使用C语言进行开发,避免过多占用嵌入式系统有限的资源,在提供的接口中使用_LINE—FILE_两个宏定义,借助编译器实现了在故障定位信息添加模块113中自动添加日志信息、生成时间、所在文件名称,以及输出行的位置信息,这些日志信息也可以通过网络在服务端日志单元12实时显示,可以使得故障现象发生时刻,程序员可以通过实时查看日志信息即可定位故障到单个函数。[0021]作为本发明的优选实施例,日志分级配置模块114配置日志信息的分级级别。[0022]在本发明实施例中,日志信息包括普通、告警和错误三个级别。[0023]在本发明实施例中,普通级日志信息是指在程序调式中用以增加调试内容的日志信息,此类信息仅在产品开发阶段使用,在设备发布后,该级别的日志信息默认关闭;告警级日志信息是指一般性错误的日志信息,需要程序员来判断是否需要进一步处理,设计中考虑到告警日志信息会采用三次重发保证告警日志信息的可靠传输,服务端日志单元12收到后续的报文后,如果发现该报文的序列号小于当前的接收窗口数,将对该报文进行丢弃处理;错误级日志信息是指程序运行中非常严重的日志信息,需要保证其可靠的传输,首先将日志信息存储到本地文件,待收到服务端日志单元12收到日志报文的确认消息后再将其删除。上述三种类型的日志信息使用控制位进行控制,程序员可以在服务端日志单元12使用图形用户界面(GraphicalUserInterface,⑶I)完成对其的改变,进而实现动态调整日志输出的等级的功能。[0024]作为本发明的优选实施例,监控信息获取模块115在设备端应用软件运行时,获取应用软件的编译时间,并保存开发人员设定的应用软件版本信息。[0025]在本发明实施例中,设备端日志单元11依照设计与所在程序在同一进程下运行,其在编译时会自动获取编译时间,同时保存程序员设定的版本信息,开机运行之后,服务器日志单元12会向设备端日志单元11查询编译时间和版本信息,得到返回信息后将这些信息在监控窗口显示。[0026]服务端日志单元12接收并存储设备端日志单元11传输的日志信息,根据配置文件输出日志信息。[0027]在本发明是实例中,除了保留传统的针对嵌入式系统本地存储和串口调试外,还可以构成本地信息传输和远端存储,特别是提供日志信息的实时传输和显示功能。[0028]在本发明实施例中,日志信息接收模块121接收并保存设备端日志单元11发送的日志信息,日志信息输出配置模块122配置日志信息的输出条件,日志信息输出模块123根据配置信息输出日志信息。[0029]在本发明实施例中,设备端日志单元11和服务端日志单元12通过传输协议/因特网互联协议(TransmissionControlProtocol/InternetProtocol,TCP/IP)的用户数据报协议(UserDatagramProtocol,UDP)方式通讯,为了用户体验,服务器日志单元12通过GUI配置日志信息的输出条件,对日志信息进行屏蔽和过滤,设置日志信息的优先级别和显示方式,可以用不同颜色来显示不同优先级别的日志信息,将设置保存为配置文件,并把日志优先级要求通过TCP/IP发给设备端日志单元11。[0030]在本发明实施例中,日志信息输出模块123通过不同的颜色区分显示输出不同的日志信息。[0031]作为本发明的优选实施例,监控信息查询模块124根据读取的配置文件创建监控窗口,向设备端日志单元11发送查询消息。[0032]作为本发明的优选实施例,监控调试模块125可视化监控设备端运行的应用软件的版本、同步网络时间、监控设备端应用软件的运行状态,以及远程控制设备端重启。[0033]作为本发明的优选实施例,日志管理模块126判断当前打开的日志文件的大小,在当前打开的日志文件小于设定阈值时,将当前日志信息附加到当前打开的日志文件中,在当前打开的日志文件大于设定阈值时,创建新的日志文件写入当前日志信息。[0034]在本发明实施例中,为了保证日志信息的实时传输,设备端日志单元11运行后会和服务端日志单元12建立采用无连接的UDP通信方式。在空闲时刻,设备端日志单元11心跳设计每隔数秒发送一次至服务器日志单元12,连续6次没有收到心跳,服务器日志单元12会认为设备端日志单元11的进程已经退出,在监控窗口提示某节点的设备异常。[0035]在本发明实施例中,设备端日志单元11协议中会对发送的日志信息报文进行计数,从而保证服务端日志单元12可以依据报文的达到情况推算网络是否拥塞,同时,服务端日志单元12可以在监控窗口显示日志的丢失情况,提供给程序员用以分析日志信息是否有效,当丢包率达到一定数额时,服务端日志单元12会自动丢弃该时段的报文。[0036]在本发明实施例中,服务端日志单元12可以运行在普通台式机上面,可视化窗口将日志信息实时显示,无需数据库的支持即可完成日志信息的存储。[0037]在本发明实施例中,引入了设备端和服务器端的概念,从而使得日志信息实现生产与使用分离,设备端日志单元11按规定可控的生成日志信息,服务端日志单元12负责日志Ih息的显不、分尚和存储。[0038]图2示出了本发明实施例提供的嵌入式设备开发日志系统服务器端的实现流程,详述如下:[0039]Dl过程是读取上次保存的配置信息,包括界面的信息显示过滤设置,显示优先级不同信息的颜色,网络通讯的配置等。[0040]D2过程主要是控制显示日志信息。由于采用设备端/服务器(client/server,c/s)结构,作为设备端的嵌入式终端会根据定时器设定的间隔时间返回给服务器端日志信息,由于网络通讯有可能的阻塞,或者终端发生异常,所以当定时器到时,但没有收到终端的日志反馈信息,服务器端就会显示红色警告信息以作提示。[0041]D3过程是日志的管理,如果日志信息大小比设定的阈值小,则将当前日志信息附力口到当前日志文件中,如果日志信息大小比设定的阈值大,说明需要清除日志文件,重新打开作为新的文件写入日志信息。这个管理过程主要是防止日志文件过于庞大,超过了服务器端文件系统的容量。[0042]本发明实施例可以满足在嵌入式系统开发、调试过程中实时查看并保存日志信息,同时,单个开发人员在工位上即可对多台嵌入式设备进行开发调试,很好的支持了软件开发的多人化、模块化。[0043]以上所述仅是本发明的优选实施方式,应当指出,对于本【
技术领域
】的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。【权利要求】1.一种嵌入式设备开发日志系统,其特征在于,所述日志系统包括:嵌入设备端应用软件的设备端日志单元,以及位于服务器端,与所述设备端日志单元通信的服务端日志单元,其中:设备端日志单元,用于生成设备端应用软件的日志信息,将所述日志信息实时传输给所述服务端日志单元;服务端日志单元,用于接收并存储所述设备端日志单元传输的日志信息,根据配置文件输出所述日志信息。2.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述设备端日志单元包括:日志信息收集模块,用于收集设备端应用软件的日志信息;以及日志信息传输模块,用于将所述日志信息通过网络实时传输给所述服务端日志单元。3.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述设备端日志单元还包括:故障定位信息添加模块,用于对单个函数的入口、出口自动添加日志信息、生成时间、所在文件名称,以及输出行的位置信息。4.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述设备端日志单元还包括:日志分级配置模块,用于配置日志信息的分级级别。5.如权利要求4所述的嵌入式设备开发日志系统,其特征在于,所述日志信息包括普通、告警和错误三个级别。6.如权利要求4所述的嵌入式设备开发日志系统,其特征在于,所述设备端日志单元还包括:监控信息获取模块,用于在设备端应用软件运行时,获取应用软件的编译时间,并保存开发人员设定的应用软件版本信息。7.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述服务端日志单元包括:日志信息接收模块,用于接收并保存设备端日志单元发送的日志信息;日志信息输出配置模块,用于配置日志信息的输出条件;以及日志信息输出模块,用于根据所述配置信息输出日志信息。8.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述日志信息输出模块通过不同的颜色区分显示输出不同的日志信息。9.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述服务端日志单元还包括:监控信息查询模块,用于根据读取的配置文件创建监控窗口,向所述设备端日志单元发送查询消息。10.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述服务端日志单元还包括:监控调试模块,用于可视化监控设备端运行的应用软件的版本、同步网络时间、监控设备端应用软件的运行状态,以及远程控制设备端重启。11.如权利要求1所述的嵌入式设备开发日志系统,其特征在于,所述服务端日志单元还包括:日志管理模块,用于判断当前打开的日志文件的大小,在当前打开的日志文件小于设定阈值时,将当前日志信息附加到当前打开的日志文件中,在当前打开的日志文件大于设定阈值时,创建新的日志文`件写入当前日志信息。【文档编号】H04L12/26GK103778049SQ201210401113【公开日】2014年5月7日申请日期:2012年10月19日优先权日:2012年10月19日【发明者】王文,张鑫,周斐,乔美生,赵巍,魏金光,张强申请人:北京市三希电子科技开发公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1