基于日志的故障排查方法及装置与流程

文档序号:12595775阅读:223来源:国知局
基于日志的故障排查方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种基于日志的故障排查方法及装置。



背景技术:

软件开发工具包(Software Develop Kit,以下简称:SDK)通常包含辅助开发某一类应用的相关文档、范例和工具的集合,开发者可以通过SDK提供的应用程序编程接口(Application Programming Interface,以下简称:API)实现相关领域应用的快速开发,在开发应用程序(Application,以下简称:APP)使用的SDK的过程中,需要排查SDK提供服务过程中出现的问题,在开发过程中一般会直接在控制台输出日志信息,或对程序进行调试处理。但是当服务集成到了业务方的软件中,SDK开发人员就无法获取日志信息或者进行程序调试。

现有的解决方法是,由接入服务的业务方收集问题的现象和问题出现的流程进而反馈给SDK开发人员,SDK开发人员根据业务方的反馈信息模拟还原出现问题的场景,进一步推断、排查问题原因;或者由业务方将出现问题的手机提供给SDK开发人员分析原因。

一方面,排查问题依赖于业务方的反馈信息,但是反馈信息不一定和本质原因有关系,如果问题不能复现或者很难复现,那么SDK开发人员排查的难度非常大。另一方面,业务方由于时间空间等问题,无法提供出现问题的手机。



技术实现要素:

本发明提供一种基于日志的故障排查方法及装置,方便开发人员排查SDK提供服务过程中出现的问题。

第一方面,本发明提供一种基于日志的故障排查方法,包括:

终端设备生成业务流程的流程日志,所述业务流程为软件开发工具包SDK所提供的服务流程;

所述终端设备将所述流程日志输出至预设磁盘的日志文件中,用于SDK开发人员根据所述日志文件进行故障排查。

进一步地,所述业务流程包括:

业务发起请求、业务对应的页面显示和业务响应结果。

进一步地,所述服务流程为业务登录流程时,所述业务流程包括:接入方通过应用程序编程接口API发起登录请求、中控分发、账号登录页面显示和登录交互响应。

进一步地,所述终端设备将所述流程日志输出至预设磁盘的日志文件中,包括:

所述终端设备将所述流程日志存储在第一队列中;

所述终端设备将所述第一队列中存储的流程日志写入内存缓冲区;

所述终端设备监听所述内存缓冲区的容量和写入操作,若监听到所述内存缓冲区没有写入操作或者达到容量阈值,则触发日志的输入输出线程,将所述内存缓冲区中当前所有的流程日志一次性写入日志文件。

进一步地,所述流程日志的类型为文本日志或堆栈日志。

第二方面,本发明提供一种基于日志的故障排查装置,包括:

生成模块,用于生成业务流程的流程日志,所述业务流程为软件开发工具包SDK所提供的服务流程;

处理模块,用于将所述流程日志输出至预设磁盘的日志文件中,用于SDK开发人员根据所述日志文件进行故障排查。

进一步地,所述业务流程包括:

业务发起请求、业务对应的页面显示和业务响应结果。

进一步地,所述服务流程为业务登录流程时,所述业务流程包括:接入方通过应用程序编程接口API发起登录请求、中控分发、账号登录页面显示和登录交互响应。

进一步地,所述处理模块具体用于:

将所述流程日志存储在第一队列中;

将所述第一队列中存储的流程日志写入内存缓冲区;

监听所述内存缓冲区的容量和写入操作,若监听到所述内存缓冲区没有写入操作或者达到容量阈值,则触发日志的输入输出线程,将所述内存缓冲区中当前所有的流程日志一次性写入日志文件。

进一步地,所述流程日志的类型为文本日志或堆栈日志。

本发明提供的基于日志的故障排查方法及装置,通过终端设备生成业务流程的流程日志,将流程日志输出至预设磁盘的日志文件中。从而,终端设备可将日志文件从预设磁盘取出后发送给SDK开发人员,极大的方便了SDK开发人员排查问题,SDK开发人员只需要按时间顺序查看日志文件,可以很快定位出出现问题的流程环节,提高SDK开发人员修复问题的效率。且可实现远程分析问题,SDK开发人员只要获取到日志文件,完全不依赖于集成服务的业务方,实现远程故障排查及处理问题。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于日志的故障排查方法实施例一的流程图;

图2为本发明基于日志的故障排查方法实施例二的流程图;

图3为本发明基于日志的故障排查装置实施例一的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明基于日志的故障排查方法实施例一的流程图,本实施例中的执行主体可以为接入服务的业务方,也即安装了APP的终端设备,如图1所示,本实施例的方法可以包括:

S101、终端设备生成业务流程的流程日志,业务流程为SDK所提供的服务流程,流程日志携带日志生成时间。

具体来说,业务流程为SDK所提供的服务流程,即就是将业务流程日志化,服务流程的每个关键环节都要生成相应的流程日志信息,例如,业务流程包括:业务发起请求、业务对应的页面显示和业务响应结果。终端设备生成业务流程的流程日志时,生成的流程日志携带日志生成时间。

具体地,服务流程为业务登录流程时,业务流程包括:接入方通过API发起登录请求、中控分发、账号登录页面显示和登录交互响应。

S102、终端设备将流程日志输出至预设磁盘的日志文件中,用于SDK开发人员根据日志文件进行故障排查。

具体地,可以是终端设备按照流程日志的日志生成时间顺序依次将流程日志输出至预设磁盘的日志文件中,只要监测到有流程日志生成,即输出至预设磁盘的日志文件中。此处的预设磁盘例如为手机的存储卡或者计算机的硬盘。

可选的,作为另一种可实施的方式,终端设备将流程日志输出至预设磁盘的日志文件中,具体可以为:

S102a、终端设备将流程日志存储在第一队列中。

S102b、终端设备将第一队列中存储的流程日志写入内存缓冲区。

S102c、终端设备监听内存缓冲区的容量和写入操作,若监听到内存缓冲区没有写入操作或者达到容量阈值,则触发日志的输入输出线程,将内存缓冲区中当前所有的流程日志一次性写入日志文件。

通过使用一个线程将流程日志写入内存缓冲区,一个线程监听内存缓冲区在没有写入操作或者达到容量阈值时将内存缓冲区中的流程日志一次性写入日志文件中,日志缓存和写入分别在两个工作子线程中。从而,内存缓冲区数据写入日志文件的频率低,降低了处理日志使用的线程数,对系统I/O压力小。

在本实施例中,流程日志的类型可以为文本日志或堆栈日志。即就是本实施例中支持流程日志为文本日志或堆栈日志。堆栈日志包含了程序运行时的上下文信息,比如在哪个类中,那个方法,哪一行代码调用了日志。堆栈日志由于包含了程序运行时的上下文信息,因此更有利于故障排查。

本实施例中,流程日志输出至预设磁盘的日志文件中后,终端设备(接入服务的业务方)把日志文件从预设磁盘取出后发送给SDK开发人员,如可以在手机存储卡上指定的目录下面找到日志文件发送给SDK开发人员,SDK开发人员根据日志文件进行故障排查,具体地,SDK开发人员接收到日志文件后,分析流程日志,定位任务执行的路径,哪一步出现了什么问题,找到问题的线索后排查软件源代码,再给出修复方案。

流程日志可以统一收集到日志文件中,还需要对接口做一些扩展,使其支持终端设备(接入服务的业务方)的配置,允许终端设备监测日志信息,也允许关闭内部的自动化日志,出于信息安全,默认情况下日志收集是关闭的。

本实施例提供的基于日志的故障排查方法,通过终端设备生成业务流程的流程日志,将流程日志输出至预设磁盘的日志文件中。从而,终端设备可将日志文件从预设磁盘取出后发送给SDK开发人员,极大的方便了SDK开发人员排查问题,SDK开发人员只需要按时间顺序查看日志文件,可以很快定位出出现问题的流程环节,提高SDK开发人员修复问题的效率。且可实现远程分析问题,SDK开发人员只要获取到日志文件,完全不依赖于集成服务的业务方,实现远程故障排查及处理问题。

下面采用一个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。

图2为本发明基于日志的故障排查方法实施例二的流程图,本实施中以服务流程为业务登录流程为例进行说明,业务流程包括:接入方通过API发起登录请求、中控分发、账号登录页面显示和登录交互响应,如图2所示,本实施例的方法可以包括:

S201、终端设备生成业务流程的流程日志。

其中,业务流程包括:接入方通过API发起登录请求、中控分发、账号登录页面显示和登录交互响应,每一流程都生成相应的流程日志。通过日志接口输出。

S202、日志处理。

具体地,生成的流程日志通过日志接口输出后,进行日志类型配置(Logger.Log处理)和日志输出配置。生成的流程日志为文本日志,日志类型包括文本日志和堆栈日志,日志类型配置具体是将流程日志设置为文本日志或堆栈日志,配置为哪种类型是预先设置的,若配置为堆栈日志则进行日志类型设置,若配置为文本日志则不做处理。文本日志只包含调用方传入的文本日志数据。堆栈日志表示的是内部自动获取了程序上下文后的更详细的日志,相比文本日志,堆栈日志额外包含了比如:日志请求发起的代码行数,类信息,方法信息等。日志输出包括控制台(console)标准输出和外部日志接口拦截,外部接口拦截为用户自定义接口。日志输出配置是确定通过控制台(console)标准输出,接着执行S203,或者通过用户自定义接口输出。

S203、日志归档,即终端设备将流程日志输出至预设磁盘的日志文件中。

日志归档具体包括:

S203a、终端设备将流程日志存储在第一队列中。

S203b、终端设备将第一队列中存储的流程日志写入内存缓冲区。

S203c、I/O单线程写日志文件。

具体为:终端设备监听内存缓冲区的容量和写入操作,若监听到内存缓冲区没有写入操作或者达到容量阈值,则触发日志的输入输出线程,将内存缓冲区中当前所有的流程日志一次性写入日志文件。

本实施例提供的基于日志的故障排查方法,通过终端设备生成业务流程的流程日志,将流程日志输出至预设磁盘的日志文件中。从而,终端设备可将日志文件从预设磁盘取出后发送给SDK开发人员,极大的方便了SDK开发人员排查问题,SDK开发人员只需要按时间顺序查看日志文件,可以很快定位出出现问题的流程环节,提高SDK开发人员修复问题的效率。且可实现远程分析问题,SDK开发人员只要获取到日志文件,完全不依赖于集成服务的业务方,实现远程故障排查及处理问题。

图3为本发明基于日志的故障排查装置实施例一的结构示意图,如图3所示,本实施例的装置可以包括:生成模块11和处理模块12,其中,生成模块11用于生成业务流程的流程日志,业务流程为软件开发工具包SDK所提供的服务流程。处理模块12用于将流程日志输出至预设磁盘的日志文件中,用于SDK开发人员根据日志文件进行故障排查。

进一步地,业务流程包括:业务发起请求、业务对应的页面显示和业务响应结果。

可选的,服务流程为业务登录流程时,业务流程包括:接入方通过应用程序编程接口API发起登录请求、中控分发、账号登录页面显示和登录交互响应。

进一步地,处理模块12具体用于:

将流程日志存储在第一队列中;

将第一队列中存储的流程日志写入内存缓冲区;

监听内存缓冲区的容量和写入操作,若监听到内存缓冲区没有写入操作或者达到容量阈值,则触发日志的输入输出线程,将内存缓冲区中当前所有的流程日志一次性写入日志文件。

可选的,流程日志的类型为文本日志或堆栈日志。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,此处不再赘述。

本实施例提供的基于日志的故障排查装置,通过终端设备生成业务流程的流程日志,将流程日志输出至预设磁盘的日志文件中。从而,终端设备可将日志文件从预设磁盘取出后发送给SDK开发人员,极大的方便了SDK开发人员排查问题,SDK开发人员只需要按时间顺序查看日志文件,可以很快定位出出现问题的流程环节,提高SDK开发人员修复问题的效率。且可实现远程分析问题,SDK开发人员只要获取到日志文件,完全不依赖于集成服务的业务方,实现远程故障排查及处理问题。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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