CN104734881A - 一种日志和异常探针的实现方法 - Google Patents

一种日志和异常探针的实现方法 Download PDF

Info

Publication number
CN104734881A
CN104734881A CN201410766410.7A CN201410766410A CN104734881A CN 104734881 A CN104734881 A CN 104734881A CN 201410766410 A CN201410766410 A CN 201410766410A CN 104734881 A CN104734881 A CN 104734881A
Authority
CN
China
Prior art keywords
file
daily record
abnormal
event
grand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410766410.7A
Other languages
English (en)
Inventor
高峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Intelligent IoT Technology Co Ltd
Original Assignee
ZTE Intelligent IoT Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Intelligent IoT Technology Co Ltd filed Critical ZTE Intelligent IoT Technology Co Ltd
Priority to CN201410766410.7A priority Critical patent/CN104734881A/zh
Publication of CN104734881A publication Critical patent/CN104734881A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种日志和异常探针的实现方法,包括如下步骤:1)日志和异常探针模块LAP以迭代服务器的方式顺序接收、处理各个模块发来的消息;2)对接收到的消息类型进行判断,将日志存储在***参数区,将异常数据存储在异常文件中;3)如果收到的是日志查看,LAP会读取***参数区的日志数据,显示到终端;如果收到的是上传日志消息,则将***参数区的日志上传给客户端的ftp服务器端;如果收到的上传异常消息,则将异常文件中的异常数据上传给客户端的ftp服务器。本发明具有的优点和积极效果是:实现了日志和异常数据的可靠存储,占用空间小,可查看和上传,操作方便;方便了嵌入式***的开发、调试与维护,为故障定位提供简单、可靠的解决方案。

Description

一种日志和异常探针的实现方法
技术领域
本发明属于嵌入式软件开发中的日志和异常探针的实现技术领域,尤其是涉及一种日志和异常探针的实现方法。
背景技术
所谓日志(Log)是指***所指定对象的某些操作和其操作结果按时间有序的集合。每个日志文件由日志记录组成,每条日志记录描述了一次单独的***事件。通常情况下,***日志是用户可以直接阅读的文本文件,其中包含了一个时间戳和一个信息或者子***所特有的其他信息。日志文件为***的相关活动记录必要的、有价值的信息,这对***监控、查询、报表和安全审计是十分重要的。在Windows***中日志主要包括应用程序、安全、***等几个部分。它记录着各种***服务的启动、运行、关闭等信息。在Linux***中,有三个主要的日志子***:连接时间日志、进程统计日志、错误日志。
异常就是程序在运行时出现的错误,这些异常有的很严重,有的则较轻。
日志和异常探针模块(Log and Abnormity Probe,简称LAP)主要就是用来记录***的主要的运作情况和程序运行时出现的异常。用户通过查询日志文件,可以了解设备的一些重大操作。日志需要存储诸如***重起、用户修改配置等重要信息,数据量相对小些。
现有的日志和异常探针模块的可靠性不佳,使用不便。
发明内容
本发明要解决的问题是提供一种日志和异常探针的实现方法。
为解决上述技术问题,本发明采用的技术方案是:
一种日志和异常探针的实现方法,包括如下步骤:
1)日志和异常探针模块LAP以迭代服务器的方式顺序接收、处理各个模块发来的消息;
2)对接收到的消息类型进行判断,如果收到的是日志或异常数据,LAP则会将日志存储在***参数区,将异常数据存储在异常文件中;所述日志和异常数据均是以结构体形式存储到二进制文件中;
3)如果收到的是日志查看,LAP会读取***参数区的日志数据,显示到终端;
如果收到的是上传日志消息,则将***参数区的日志上传给客户端的ftp服务器端;
如果收到的上传异常消息,则将异常文件中的异常数据上传给客户端的ftp服务器;以及
日志或异常数据在终端显示或上传前,通过转换工具将二进制的日志和异常文件转换成可阅读的文本文件。
进一步的,所述日志、异常数据均是采用循环存储的方式。
进一步的,如果收到的是日志查看,LAP将读取***参数区的日志数据,并将二进制的日志数据解析ascii形式,然后将这些解析后的数据显示到终端。
进一步的,所述日志的转换工具的转换过程如下:其中日志文件的存储格式为:事件(消息)ID、时间、事件描述信息;
事件id和事件名有具体的对应关系,定义在事件id文件中,事件id文件是一个头文件,定义了事件id和事件名对应的宏,事件id文件为一个头文件,里面定义的的有关事件名称的宏;
转换工具读取日志文件的每条日志,将日志的事件id和事件id文件中的宏值比较,相等时,则宏名就是事件名,然后将宏名存放到转换后的文件中,如果没有匹配的宏,则将事件id拷贝到转换后的文件中;
时间在日志文件是以1970年经过的秒来记录的,需要转换为年月日时分秒的形式;
事件描述信息在日志文件中是按照ascii码存储的。
进一步的,所述异常文件的转换工具的转换过程如下:其中异常探针在文件中的存储格式为:所在文件ID、所在行、时间、3个变量值、原因码;
所在异常文件id和具体的文件名之间的对应关系定义在文件id文件中,文件id文件是一个头文件,文件id文件中定义的是文件id与文件名的对应宏,宏值就是文件名;转换工具读取异常文件的每条异常记录,将异常中文件id和文件id文件中的宏值比较,相等时,则宏名就是文件名,然后将宏名存放到转换后的文件中,如果没有匹配,就将文件id拷贝到转换后的文件中;时间和日志的时间处理一样;三个变量值在日志文件中按照二进制格式存储,按照16进制数格式转换为文本格式,每个变量需要10byte空间;原因码在日志文件中以二进制格式存储,转换后为原因码对应的宏,没有宏的显示数值,原因码的宏定义在头文件中,转换工具通过读取这个文件进行转换。
本发明具有的优点和积极效果是:
实现了日志和异常数据的可靠存储,占用空间小,可查看和上传,操作方便;方便了嵌入式***的开发、调试与维护,为故障定位提供简单、可靠的解决方案。
附图说明
图1本发明日志、异常记录的存储方式;
图2本发明日志、异常收集存储流程图;
图3本发明日志查看流程图;
图4本发明日志、异常文件上传流程图;
图5本发明日志文件转换流程图。
具体实施方式
下面结合附图对本发明的具体实施例做详细说明。
一种日志和异常探针的实现方法,包括如下步骤:
步骤一:日志和异常探针模块LAP以迭代服务器的方式顺序接收、处理各个模块发来的消息;
步骤二:对接收到的消息类型进行判断,如果收到的是日志或异常数据,LAP则会将日志存储在***参数区,将异常数据存储在异常文件中;
***的重要操作和出现的异常需要永久的记录在***中,以待研发人员或用户查看使用;日志主要存储在一个命名为***参数区的部分,***参数区位于flash中的非文件***区,断电之后仍能存储信息,而日志之所以存储在***参数区主要是考虑日志安全的需要;异常存储在文件,设备断电时这些文件还是能够存在的;
步骤三:如果收到的是日志查看,LAP会读取***参数区的日志数据,显示到终端;
如果收到的是上传日志消息,则将***参数区的日志上传给客户端的ftp服务器端;
如果收到的上传异常消息,则将异常文件中的异常数据上传给客户端的ftp服务器。
所述日志、异常数据的存储格式如下:
由于嵌入式设备的存储空间有限不可能记录所有***的运作日志、只能记录一些重要、有用的日志,主要包括:上电启动、复位、配置、版本下载、版本激活、反激活、uboot升级、lmt登录等。
日志文件的存储格式如下:
[事件(消息)ID时间事件描述信息]
如表1所示:
事件ID:主要是标记事件的ID号;
时间:主要是记录发生的时间,记录从1970年以来经历的秒数;
事件描述信息:主要是说明发生这个事件的状态、原因、成功等情况,用户也可以根据具体情况,进行一些说明性的调整。
异常探针在文件中的存储格式如下:
[所在文件ID所在行时间3个变量值原因码]
如表2所示:
所在文件ID:表示异常发生所在的文件;
所在行:记录异常发生的在文件的第几行;
时间:异常发生的时间,记录从1970年以来经历的秒数;
3个变量值:记录异常时,记录3个变量值,这些变量的选取,是由用户自己确定的。
原因码:***对异常原因进行统一定义,一种原因对应一个码值,原因码的位置就是添加发生异常时的原因的码值,这些原因码是由用户自己定义的。
所述日志、异常数据的存储方式如下:
由于异常是按照结构体形式存储到二进制文件中的,每条异常记录大小是固定的,并且是按照时间排列的,所以异常记录在文件中采用循环存储的方式,当记录超过10000条时,新的异常记录会覆盖掉第一条记录,也就是最老的那条记录,过程如图1所示。
日志存储在***参数区,最多可以记录105条,也是按照结构体形式存储的,每条日志大小是固定的,所以日志的存储同样采用循环存储方式。
所述日志查看的过程如下:
用户在终端输入查看日志命令,LAP识别这个命令,然后LAP将读取***参数区的日志数据,并将二进制的日志数据解析ascii形式,然后将这些解析后的数据显示到终端,其流程图如图3所示。
如图4所示,所述日志、异常文件上传的过程如下:
LAP根据命令参数得知要上传日志文件、还是异常文件,并过ftp服务器端的ip、端口、用户名、密码;其中LAP与ftp服务器建立联系的过程如下:
LAP从命令中获取ftp服务器ip、端口号,并与ftp服务器建立命令通道,ftp服务器响应成功,则进行下一步,否则LAP在终端显示建链失败;
LAP以用户名、密码为参数,向ftp服务器发送命令USER、PASS,登录到ftp服务器,ftp服务器响应成功,则进行下一步,否则LAP在终端显示建链失败;
LAP向ftp服务器发送命令TYPE I,表示传送的文件类型为二进制文件,ftp服务器响应成功,则进行下一步,否则LAP在终端显示建链失败;
LAP向ftp服务器发送命令STOR,表示要上传文件,ftp服务器响应成功,则进行下一步,否则LAP在终端显示建链失败;
LAP向ftp服务器发送命令PASV,表示工作在被动方式,ftp服务器响应成功,则进行下一步,否则LAP在终端显示建链失败;
LAP等待ftp服务器发来的响应,响应中包括ftp服务器接收数据的所用的ip和端口号,LAP使用ftp服务器传来的ip和端口号建立数据通道,向ftp服务器发送日志/异常数据;
当日志/异常数据发送完后,LAP向ftp服务器发送命令QUIT,表示退出登录,LAP在终端显示上传失败;
如果在上传时,出现了断点情况,则LAP将终止上传,LAP在终端显示上传失败。
由于上传给用户的日志、异常文件是二进制文件,用户是无法直接阅读的,所以,转换工具主要是负责将二进制的日志、异常文件转换成可阅读的文本文件,也可以将异常文件导出到excel表中,方便用户对异常的查找排序;下面介绍转换工具的转换过程;
如图5所示,所述日志的转换过程如下:每条日志包括事件ID、时间和事件描述信息,
事件ID和事件名有具体的对应关系,定义在事件id文件中,事件id文件是一个头文件,定义了事件id和事件名对应的宏,
事件id文件EventId.h的内容如下:
#define start (0x0001)
#define reset (0x0002)
...
事件id文件为一个头文件,里面定义的的有关事件名称的宏;
转换工具读取日志文件的每条日志,将日志的事件id和事件id文件中的宏值比较,相等时,则宏名就是事件名,然后将宏名存放到转换后的文件中,如果没有匹配的宏,则将事件id拷贝到转换后的文件中;
时间在日志文件是以1970年经过的秒来记录的,需要转换为年月日时分秒的形式;
事件描述信息在日志文件中是按照ascii码存储的,直接拿过来就可以了。
所述异常文件的转换过程如下:每条异常包括所在文件ID、所在行、时间、三个变量值和原因码,
所在文件ID和具体的文件名之间的对应关系定义在文件id文件中,文件id是一个头文件,文件id文件中定义的是文件id与文件名的对应宏,文件id文件FileId.h中的内容如下:
#define cli.c          (0x0001)
#define ris_epld_drv.c (0x0002)
...
宏值就是文件名,
文件ID和文件名的转换过程和日志的事件id的转换类似,转换工具读取异常文件的每条异常记录,将异常中文件id和文件id文件中的宏值比较,相等时,则宏名就是文件名,然后将宏名存放到转换后的文件中,如果没有匹配,就将文件id拷贝到转换后的文件中;
时间和日志的时间处理一样;
三个变量值在日志文件中按照二进制格式存储,按照16进制数格式转换为文本格式,每个变量需要10byte空间,例如:0x12345678;
原因码在日志文件中以二进制格式存储,转换后为原因码对应的宏,没有宏的显示数值,原因码的宏定义在头文件Pub_ErrorDef.h中,转换工具通过读取这个文件进行转换;其流程图与日志转换类似。
LAP按照功能分为日志、异常上传,日志查看,日志、异常收集,日志、异常存储四部分,还有转换工具。顾名思义,日志的收集模块专门负责接收各个模块发来的日志和异常数据,然后通过存储模块将这些数据存储在flash***参数区中或异常文件中。上传模块收到上传命令后,会将***参数区中的日志数据或异常文件的异常记录上传给用户端的ftp服务器;而日志查看模块将日志的数据显示给用户终端。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

Claims (5)

1.一种日志和异常探针的实现方法,其特征在于包括如下步骤:
1)日志和异常探针模块LAP以迭代服务器的方式顺序接收、处理各个模块发来的消息;
2)对接收到的消息类型进行判断,如果收到的是日志或异常数据,LAP则会将日志存储在***参数区,将异常数据存储在异常文件中;所述日志和异常数据均是以结构体形式存储到二进制文件中;
3)如果收到的是日志查看,LAP会读取***参数区的日志数据,显示到终端;
如果收到的是上传日志消息,则将***参数区的日志上传给客户端的ftp服务器端;
如果收到的上传异常消息,则将异常文件中的异常数据上传给客户端的ftp服务器;以及
日志或异常数据在终端显示或上传前,通过转换工具将二进制的日志和异常文件转换成可阅读的文本文件。
2.根据权利要求1所述的日志和异常探针的实现方法,其特征在于:所述日志、异常数据均是采用循环存储的方式。
3.根据权利要求1所述的日志和异常探针的实现方法,其特征在于:如果收到的是日志查看,LAP将读取***参数区的日志数据,并将二进制的日志数据解析ascii形式,然后将这些解析后的数据显示到终端。
4.根据权利要求1所述的日志和异常探针的实现方法,其特征在于:所述日志的转换工具的转换过程如下:其中日志文件的存储格式为:事件(消息)ID、时间、事件描述信息;
事件id和事件名有具体的对应关系,定义在事件id文件中,事件id文件是一个头文件,定义了事件id和事件名对应的宏,事件id文件为一个头文件,里面定义的的有关事件名称的宏;
转换工具读取日志文件的每条日志,将日志的事件id和事件id文件中的宏值比较,相等时,则宏名就是事件名,然后将宏名存放到转换后的文件中,如果没有匹配的宏,则将事件id拷贝到转换后的文件中;
时间在日志文件是以1970年经过的秒来记录的,需要转换为年月日时分秒的形式;
事件描述信息在日志文件中是按照ascii码存储的。
5.根据权利要求1所述的日志和异常探针的实现方法,其特征在于:所述异常文件的转换工具的转换过程如下:其中异常探针在文件中的存储格式为:所在文件ID、所在行、时间、3个变量值、原因码;
所在异常文件id和具体的文件名之间的对应关系定义在文件id文件中,文件id文件是一个头文件,文件id文件中定义的是文件id与文件名的对应宏,宏值就是文件名;转换工具读取异常文件的每条异常记录,将异常中文件id和文件id文件中的宏值比较,相等时,则宏名就是文件名,然后将宏名存放到转换后的文件中,如果没有匹配,就将文件id拷贝到转换后的文件中;时间和日志的时间处理一样;三个变量值在日志文件中按照二进制格式存储,按照16进制数格式转换为文本格式,每个变量需要10byte空间;原因码在日志文件中以二进制格式存储,转换后为原因码对应的宏,没有宏的显示数值,原因码的宏定义在头文件中,转换工具通过读取这个文件进行转换。
CN201410766410.7A 2014-12-11 2014-12-11 一种日志和异常探针的实现方法 Pending CN104734881A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410766410.7A CN104734881A (zh) 2014-12-11 2014-12-11 一种日志和异常探针的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410766410.7A CN104734881A (zh) 2014-12-11 2014-12-11 一种日志和异常探针的实现方法

Publications (1)

Publication Number Publication Date
CN104734881A true CN104734881A (zh) 2015-06-24

Family

ID=53458337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410766410.7A Pending CN104734881A (zh) 2014-12-11 2014-12-11 一种日志和异常探针的实现方法

Country Status (1)

Country Link
CN (1) CN104734881A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039724A (zh) * 2018-07-23 2018-12-18 北京奇艺世纪科技有限公司 日志上传方法和装置
CN109257213A (zh) * 2018-09-07 2019-01-22 广东电网有限责任公司 判断计算机终端准入验证失败的方法和装置
CN111435308A (zh) * 2019-01-11 2020-07-21 北京确安科技股份有限公司 一种获取探针台程序名称的方法及装置
CN112214463A (zh) * 2019-07-12 2021-01-12 中科云谷科技有限公司 Gps终端的监测方法、装置、***及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039724A (zh) * 2018-07-23 2018-12-18 北京奇艺世纪科技有限公司 日志上传方法和装置
CN109039724B (zh) * 2018-07-23 2022-02-01 北京奇艺世纪科技有限公司 日志上传方法和装置
CN109257213A (zh) * 2018-09-07 2019-01-22 广东电网有限责任公司 判断计算机终端准入验证失败的方法和装置
CN109257213B (zh) * 2018-09-07 2021-06-29 广东电网有限责任公司 判断计算机终端准入验证失败的方法和装置
CN111435308A (zh) * 2019-01-11 2020-07-21 北京确安科技股份有限公司 一种获取探针台程序名称的方法及装置
CN112214463A (zh) * 2019-07-12 2021-01-12 中科云谷科技有限公司 Gps终端的监测方法、装置、***及存储介质

Similar Documents

Publication Publication Date Title
CN102306114B (zh) 基于云存储的数据定时备份和恢复方法
US20100049717A1 (en) Method and systems for sychronization of process control servers
CN102630046B (zh) 数据获取***、方法、机顶盒、网络服务器
CN104252500A (zh) 一种数据库管理平台的故障修复方法和装置
CN103226612B (zh) 一种基于内存数据库的内容管理***
CN101183312A (zh) 终端通过接入usb存储设备实现版本升级及备份的方法
CN103067230A (zh) 一种通过植入监控代码实现对http服务监控的方法
CN110401949A (zh) 终端设备运行日志上传方法和装置
CN105430327A (zh) 一种nvr集群备份方法及装置
US11288378B2 (en) Embedded data protection and forensics for physically unsecure remote terminal unit (RTU)
CN104734881A (zh) 一种日志和异常探针的实现方法
CN102647025A (zh) 基于中心服务器方式实现保护装置即插即用的方法
CN102681931A (zh) 一种日志和异常探针的实现方法
CN102521390B (zh) 一种基于功能插件的数据库管理监控***
CN102594618A (zh) 实现存储局域网络存储设备测试的方法及装置
CN101763294A (zh) 根据时间段查看和备份***操作日志的方法
CN105871642A (zh) 机房无人值守远程设备管理***
CN103036913B (zh) 一种移动终端动环监控方法、***和移动终端代理服务器
CN112333758B (zh) 电视网关***的稳定性监测管理方法、***及应用
US20180336171A1 (en) System and method for constructing extensible event log with javascript object notation (json) encoded payload data
CN104506939A (zh) 一种信息上报方法及电视终端
CN103414252A (zh) 一种变电站通信服务配置信息实时同步***及其方法
CN113239005B (zh) 一种电力监控***i、iv区数据同步方法及装置
CN102253890A (zh) 一种嵌入式调试方法
KR101361786B1 (ko) Sdp를 이용한 데이터 통합 유닛

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150624

WD01 Invention patent application deemed withdrawn after publication