一种程序日志记录方法及装置与流程

文档序号:20682454发布日期:2020-05-08 18:31阅读:154来源:国知局
一种程序日志记录方法及装置与流程

本申请涉及互联网技术领域,特别涉及一种程序日志记录方法及装置、计算设备和计算机可读存储介质。



背景技术:

随着互联网技术的日益发展,越来越多的应用程序被开发使用,为了便于记录程序在日常使用过程中发生的事件,程序基本都有对应的日志文件。

在现有的记录日志的方法中,将程序运行中发生事件产生的信息逐条记录至日志文件中,当程序中连续出现某一个事件时,该事件对应的事件记录会一致重复写入日志文件中,导致同一事件记录在日志文件中会有大量连续的刷屏效果,极大的浪费了计算资源。

那么如何有效地解决上述问题,就成为技术人员亟待解决的问题。



技术实现要素:

有鉴于此,本申请实施例提供了一种程序日志记录方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本申请实施例的第一方面,提供了一种程序日志记录方法,包括:

监测程序在运行过程中发生的事件,并获取所述事件的事件描述信息;

获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息;

判断所述事件描述信息是否与所述事件内容中记录的事件描述信息相同;

若是,增加所述最后一条事件记录的计数;

若否,将所述事件对应的信息作为新的事件记录添加至所述日志文件中。

可选的,监测程序在运行过程中发生的事件,包括:

监测程序在运行过程中发生的正常事件和异常事件。

可选的,获取所述事件的事件描述信息,包括:

根据所述事件获取所述事件对应的预设的事件代码;

根据所述事件代码获取对应的预设的事件描述信息。

可选的,获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息,包括:

读取所述程序的日志文件;

获取所述日志文件中最后一条事件记录;

提取所述最后一条事件记录的事件内容中记录的事件描述信息。

可选的,所述事件记录中包括用以记录事件发生次数的事件计数;

增加所述最后一条事件记录的计数,包括:

获取所述事件次数信息中的事件计数;

判断所述事件次数是否为空;

若是,则为所述事件计数赋值;

若否,则为所述事件计数自增1。

可选的,将所述事件对应的信息作为新的事件记录添加至所述日志文件中,包括:

获取所述事件对应的时间、等级、事件描述信息;

在所述日志文件中新增一条事件记录,其中,所述事件记录包括事件时间字段、事件等级字段、事件内容字段;

将所述事件对应的时间、等级、事件描述信息对应添加到所述事件记录中的事件时间字段、事件等级字段、事件内容字段中。

根据本申请实施例的第二方面,提供了一种程序日志记录装置,包括:

监测模块,被配置为监测程序在运行过程中发生的事件,并获取所述事件的事件描述信息;

获取模块,被配置为获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息;

判断模块,被配置为判断所述事件描述信息是否与所述事件内容中记录的事件描述信息相同,若是,则执行增加计数模块,若否,则执行添加记录模块;

增加计数模块,被配置为增加所述最后一条事件记录的计数;

添加记录模块,被配置为将所述事件对应的信息作为新的事件记录添加至所述日志文件中。

可选的,所述监测模块,进一步被配置为监测程序在运行过程中发生的正常事件和异常事件。

可选的,所述监测模块,进一步被配置为根据所述事件获取所述事件对应的预设的事件代码;根据所述事件代码获取对应的预设的事件描述信息。

可选的,所述获取模块,进一步被配置为读取所述程序的日志文件;获取所述日志文件中最后一条事件记录;提取所述最后一条事件记录的事件内容中记录的事件描述信息。

可选的,所述事件记录中包括用以记录事件发生次数的事件计数;

所述增加计数模块,进一步被配置为获取所述事件次数信息中的事件计数;判断所述事件次数是否为空;若是,则为所述事件计数赋值;若否,则为所述事件计数自增1。

可选的,所述添加记录模块,进一步被配置为获取所述事件对应的时间、等级、事件描述信息;在所述日志文件中新增一条事件记录,其中,所述事件记录包括事件时间字段、事件等级字段、事件内容字段;将所述事件对应的时间、等级、事件描述信息对应添加到所述事件记录中的事件时间字段、事件等级字段、事件内容字段中。

根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述程序日志记录方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述程序日志记录方法的步骤。

本申请提供的实施例中,通过监测程序在运行过程中发生的事件,并获取所述事件的事件描述信息;获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息;判断所述事件描述信息是否与所述事件内容中记录的事件描述信息相同;若是,增加所述最后一条事件记录的计数;若否,将所述事件对应的信息作为新的事件记录添加至所述日志文件中。统计连续出现相同的事件次数,可以直观的得知程序事件连续出现的次数,同时避免了在同一事件记录在日志文件中出现刷屏的情况,节约了计算开支,提高了用户体验。

附图说明

图1是本申请实施例提供的计算设备的结构框图;

图2是本申请实施例提供的程序日志记录方法的流程图;

图3是本申请实施例提供的获取事件记录中事件内容方法的流程图;

图4是本申请另一实施例提供的程序日志记录方法的流程图;

图5是本申请实施例提供的日志文件的示意图;

图6是本申请实施例提供的程序日志记录装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

日志文件:用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。日志文件具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。

事件记录:用以记录程序在运行过程中发生各类事件时的信息。

在本申请中,提供了一种程序日志记录方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

其中,处理器120可以执行图2所示程序日志记录方法中的步骤。图2示出了根据本申请一实施例的程序日志记录方法的流程图,包括步骤202至步骤210。

步骤202:监测程序在运行过程中发生的事件,并获取所述事件的事件描述信息。

在日常应用中,程序有很多种类,如办公软件、游戏程序、听歌程序等等,运行程序的设备也有很多种,如电脑、平板电脑、手机、智能穿戴设备等等,在本申请中不对程序的种类做任何限定,也不对运行程序的设备做任何限定。

监测程序在运行过程中发生的事件,如监测在电脑上运行的游戏程序,用户的点击鼠标事件;如监测在手机上运行的听歌程序,用户的点击播放事件;如监测在电脑上运行编程程序时的系统报错事件等等。

获取监测到的事件对应的事件描述信息,所述事件描述信息用于简单清楚的描述所述事件的具体内容,便于快速直接的了解程序在运行过程中发生了什么事件。

在本申请提供的实施例中,监测到游戏程序在运行过程中,用户点击了鼠标左键,系统监测到了点击鼠标左键事件,并获取对应的事件描述信息“clickleftbutton”。

在本申请提供的另一实施例中,监测到听歌软件在运行过程中,程序本身运行出现错误,并获取对应的事件描述信息为“erroratline158infunction1”。

可选的,监测程序在运行过程中发生的正常事件和异常事件。

在实际应用过程中,需要监测程序在运行过程中发生的正常事件和异常事件,对于程序运行过程中的所有事件都需要记录,可以直观的记录历史数据、诊断问题以及了解系统活动等等。

可选的,获取所述事件的事件描述信息包括:根据所述事件获取所述事件对应的预设的事件代码;根据所述事件代码获取对应的预设的事件描述信息。

在实际应用中,程序会有对应的预设的事件、事件代码、事件描述信息的对应表,当监测到程序的事件时,根据所述事件获取对应的事件代码,再根据所述事件代码在预设的对应表中,获取对应的事件描述信息。

在本申请提供的实施例中,用户点击了鼠标左键,系统监测到了点击鼠标左键事件,点击鼠标左键事件对应的事件代码为“10005”,在对应表中,通过事件代码“10005”获取对应的事件描述信息为“clickleftbutton”。

步骤204:获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息。

日志文件记录程序在运行过程中发生事件的事件记录,包括事件时间字段、事件等级字段、事件内容字段等与事件相关信息。事件内容字段记录了事件的描述信息。

可选的,参见图3,步骤204可以通过下述步骤302至步骤306实现。

步骤302:读取所述程序的日志文件。

读取所述程序的日志文件,所述日志文件用于记录所述程序的事件记录。

步骤304:获取所述日志文件中最后一条事件记录。

获取所述日志文件中最后一条事件记录,可选的,所述日志文件中的事件记录按照事件记录的时间顺序排列,读取最后一条事件记录即读取最新一条事件记录。

步骤306:提取所述最后一条事件记录的事件内容中记录的事件描述信息。

提取所述最后一条事件记录的事件内容字段中记录的所述事件的事件描述信息。

步骤206:判断所述事件描述信息是否与所述事件内容中记录的事件描述信息相同,若是则执行步骤208,若否则执行步骤210。

判断程序在运行过程中发生事件的事件描述信息与日志文件中最后一条事件记录的事件内容中记录的事件描述信息是否相同,即判断程序新发生的事件是否与上一个事件相同。如果相同,则说明程序连续发生相同的事件需要记录,如果不同,则说明程序发生了新的事件需要记录。

步骤208:增加所述最后一条事件记录的计数。

在日志文件的事件记录中有一个字段用来统计所述事件发生的次数,当所述事件记录出现多次时,就增加将所述统计事件发生次数的数字

在本申请提供的一实施例中,增加所述最后一条事件记录的计数的方式可以为:当所述事件第1次发生时,不显示次数,当所述事件发生次数大于1次时,显示次数为总次数减1,如当所述事件发生次数为8次时,所述事件记录的计数为“7”,用以表示除了事件记录保存的一次外,还发生了7次。

在本申请提供的另一实施例中,增加所述最后一条事件记录的计数的方式还可以为:当所述事件第一次发生时,不显示次数,当所述事件发生次数大于1次时,显示事件发生的总次数,如当所述事件发生次数为8次时,所述事件记录的计数为“8”,用以表示所述事件记录一共发生了8次。

步骤210:将所述事件对应的信息作为新的事件记录添加至所述日志文件中。

将事件对应的相关信息如事件发生的时间,事件的等级,事件的描述信息等相关内容生成一条新的事件记录,添加至所述日志文件中。

本申请提供的程序日志记录方法,在日志文件中,将连续相同的事件通过统计发生次数的方式记录下来,不仅能极大的节约了计算开销,节省了存储空间,避免了在日志文件中产生刷屏的现象,还可以直观的了解到该事件连续发生的次数,便于快速准确的了解程序在运行过程中发生事件的情况。

图4示出了本申请另一实施例的程序日志记录方法,包括步骤402至步骤420。

步骤402:监测程序在运行过程中发生的事件,并获取所述事件的事件描述信息。

步骤404:获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息。

步骤406:判断所述事件描述信息是否与所述事件内容中记录的事件描述信息相同,若是则执行步骤408,若否则执行步骤416。

步骤402至步骤406与上述步骤202至步骤206的方法一致,关于步骤402~406的具体解释,参见前述实施例中的步骤202~206的详细内容,在此就不再赘述。

步骤408:获取所述事件次数信息中的事件计数。

获取所述事件记录中用以记录所述事件发生次数的统计数字。

步骤410:判断所述事件次数是否为空,若是则执行步骤412,若否则执行步骤414。

判断用于统计所述事件次数的统计数字是否为空,若为空则说明该事件只发生过一次,若不为空则说明该事件已经连续发生过至少两次。

步骤412:为所述事件计数赋值。

为用于统计所述事件次数的统计数字赋值,根据实际应用的设计不同,可以为其赋值为“1”,表示所述事件在发生过第一次之后额外的发生了1次;也可以为其赋值为“2”,表示所述事件总共连续发生了2次。

步骤414:为所述事件计数自增1。

为用于统计所述事件次数的统计数字自增1,用以表示所述事件再一次发生。

步骤416:获取所述事件对应的时间、等级、事件描述信息。

获取所述事件发生时的时间,所述事件对应的事件等级,所述事件的事件描述信息。

所述事件对应的事件等级可以根据实际情况进行分类,在本申请中不对事件等级的设置做限定。

在本申请提供的一实施例中,获取事件对应的时间为“2019-3-0322:49:35”,事件等级为“info”,事件描述信息为“clickleftbutton”。

在本申请提供的另一实施例中,获取事件对应的时间为“2019-5-1822:49:35”,事件等级为“error”,事件描述信息为“erroratline158infunction1”。

步骤418:在所述日志文件中新增一条事件记录,其中,所述事件记录包括事件时间字段、事件等级字段、事件内容字段。

在所述日志文件的最后新增一条事件记录,其中所述事件记录包括事件时间字段、事件等级字段、事件内容字段等相关信息。

步骤420:将所述事件对应的时间、等级、事件描述信息对应添加到所述事件记录中的事件时间字段、事件等级字段、事件内容字段中。

将步骤416中的信息添加至步骤418中新增的事件记录的相关字段中,用以生成一条完整的事件记录。

本申请提供的程序日志记录方法,将日志文件中,将程序在运行过程中发生的事件都详细的记录下来,将连续相同的事件通过统计发生次数的方式记录下来,不仅能极大的节约了计算开销,节省了存储空间,避免了在日志文件中产生刷屏的现象,还可以直观的了解到该事件连续发生的次数,便于快速准确的了解程序在运行过程中发生事件的情况。

参见图5,图5是本申请实施例提供的日志文件的示意图。其中,每一条记录即为一条事件记录,“#”记录了日志文件中事件记录的序号,“time”记录了事件发生的时间,“level”记录了事件的等级,“module”记录了发生所述事件的模块,“content”记录了事件的事件描述信息,如图5所示,序号为1的事件记录最后有(+1)的计数标记,表示事件描述信息“[openframecharinfo]old:0”对应的事件连续发生了两次;序号为2的事件记录最后没有计数标记,表示该事件并没有连续发生;序号为8的事件记录最后有(+8)的计数标记,表示事件描述信息“[openframecharinfo]old:0”对应的事件连续发生了9次。

本申请提供的程序日志记录方法,通过统计并记录事件连续发生次数的方式,节约了计算开销,节省了存储空间,避免出现日志文件中的刷屏现象,还可以直观的展示出事件连续发生的次数,便于快速准确的了解程序在运行过程中发生事件的情况。

与上述方法实施例相对应,本申请还提供了程序日志记录装置实施例,图6示出了本申请一个实施例的程序日志记录装置的结构示意图。如图6所示,该装置包括:

监测模块602,被配置为监测程序在运行过程中发生的事件,并获取所述事件的事件描述信息。

获取模块604,被配置为获取所述程序的日志文件中最后一条事件记录中的事件内容,其中所述事件内容用以记录当前事件的事件描述信息。

判断模块606,被配置为判断所述事件描述信息是否与所述事件内容中记录的事件描述信息相同,若是,则执行增加计数模块608,若否,则执行添加记录模块610。

增加计数模块608,被配置为增加所述最后一条事件记录的计数。

添加记录模块610,被配置为将所述事件对应的信息作为新的事件记录添加至所述日志文件中。

可选的,所述监测模块602,进一步被配置为监测程序在运行过程中发生的正常事件和异常事件。

可选的,所述监测模块602,进一步被配置为根据所述事件获取所述事件对应的预设的事件代码;根据所述事件代码获取对应的预设的事件描述信息。

可选的,所述获取模块604,进一步被配置为读取所述程序的日志文件;获取所述日志文件中最后一条事件记录;提取所述最后一条事件记录的事件内容中记录的事件描述信息。

可选的,所述事件记录中包括用以记录事件发生次数的事件计数。

所述增加计数模块608,进一步被配置为获取所述事件次数信息中的事件计数;判断所述事件次数是否为空;若是,则为所述事件计数赋值;若否,则为所述事件计数自增1。

可选的,所述添加记录模块610,进一步被配置为获取所述事件对应的时间、等级、事件描述信息;在所述日志文件中新增一条事件记录,其中,所述事件记录包括事件时间字段、事件等级字段、事件内容字段;将所述事件对应的时间、等级、事件描述信息对应添加到所述事件记录中的事件时间字段、事件等级字段、事件内容字段中。

本申请提供的程序日志记录装置,将日志文件中,将程序在运行过程中发生的事件都详细的记录下来,将连续相同的事件通过统计发生次数的方式记录下来,不仅能极大的节约了计算开销,节省了存储空间,避免了在日志文件中产生刷屏的现象,还可以直观的了解到该事件连续发生的次数,便于快速准确的了解程序在运行过程中发生事件的情况。

本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的程序日志记录方法的步骤。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述程序日志记录方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的程序日志记录方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述程序日志记录方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1