一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

日志打印方法及其相关设备与流程

2022-12-31 14:40:14 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种日志打印方法及其相关设备。


背景技术:

2.应用系统的日志打印是对系统运行过程信息的重要记录方式,用于进行系统运行过程的观察以及故障的排查与定位,是系统运行维护的重要手段。其中,常见的日志记录方式,采用简单的文件输出,或者成熟的开源日志库组件进行日志记录。开源的日志库组件能够提供丰富的日志记录功能,在使用时,一般通过调用日志器进行日志记录。
3.然而,开源的日志库组件虽然支持对日志器的命名以及日志级别的调整和过滤,但这些功能具有粗粒度。举例来说,在应用系统的调用过程中,部分公共代码会在多个业务场景下反复出现。当应用系统出现问题时,应用系统可能是在某个特定业务场景下异常,而在其他业务场景下正常。此时,传统的粗粒度的日志记录方式需要打开这个公共代码的全部日志记录功能,无法在特定业务场景下打开日志记录器。在业务量非常高的情况下,日志记录功能打开会瞬间在系统产生大量的日志记录,造成系统资源的浪费,严重情况下甚至能造成系统运行效率的大幅下降。


技术实现要素:

4.有鉴于此,本技术提出了一种日志打印方法及其相关设备,能够实现针对特定场景精确输出该特定场景所必需的日志的能力,进而以较小的系统资源消耗代价来达到打印特定场景日志的目的,通过对日志打印动态调试处理,从而降低日志打印阻塞的风险,提升系统资源的利用率和运行效率。
5.根据本技术的一方面,提供了一种日志打印方法,所述方法包括:接收日志打印请求;在应用程序入口处识别输入数据对应的各业务场景,得到与各业务场景对应的多个业务场景标识;将所述多个业务场景标识输入至统一的处理通道,分别判断各所述业务场景标识是否对应配置有动态调试组件,其中:若所述业务场景标识对应配置有动态调试组件,则设置该业务场景标识对应的第一动态调试标志;若所述业务场景标识对应配置无动态调试组件,则检测所述输入数据是否对应设置有动态调试信息;基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求。
6.进一步地,在应用程序入口处识别输入数据对应的各业务场景,得到与各业务场景对应的多个业务场景标识,包括:获取所有业务场景对应的多个业务参数,并将所述多个业务参数预先存储至数据库中;根据输入数据中的至少一个所述业务参数识别当前的各业务场景;在应用程序入口处获取与所述当前的各业务场景对应的多个业务场景标识。
7.进一步地,所述动态调试组件设置在所述处理通道内,将所述多个业务场景标识输入至统一的处理通道,分别判断各所述业务场景标识是否对应配置有动态调试组件,包括:获取各所述业务场景标识对应的多个功能组件;判断各所述功能组件是否访问所述处理通道的相关属性,其中:若所述功能组件访问所述处理通道的相关属性,则在所述处理通
道调用所述功能组件时,该功能组件对应配置有动态调试组件;若所述功能组件无法访问所述处理通道的相关属性,则在所述处理通道调用所述功能组件时,该功能组件对应配置无动态调试组件。
8.进一步地,所述处理通道入口设置有动态调试开关,若所述业务场景标识对应配置无动态调试组件,则检测所述输入数据是否对应设置有动态调试信息,包括:根据所述输入数据判断是否打开所述动态调试开关,其中:在打开所述动态调试开关的情况下,所述输入数据对应设置有动态调试信息;在关闭所述动态调试开关的情况下,所述输入数据对应设置无动态调试信息。
9.进一步地,基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求,包括:判断所述第一动态调试标志是否等于预设的第一动态调试标志阈值,其中:若所述第一动态调试标志等于预设的第一动态调试标志阈值,则打印与所述第一动态调试标志对应的业务场景日志;若所述第一动态调试标志不等于预设的第一动态调试标志阈值,则执行所述应用程序的下一步代码。
10.进一步地,基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求,还包括:判断所述输入数据是否对应设置有动态调试信息,其中:若所述输入数据对应设置无动态调试信息,则设置与该输入数据对应的第二动态调试标志;若所述输入数据对应设置有动态调试信息,则设置所述第一动态调试标志;在设置与该输入数据对应的第二动态调试标志的情况下,判断所述第二动态调试标志是否等于预设的第二动态调试标志阈值,其中:若所述第二动态调试标志等于预设的第二动态调试标志阈值,则打印与所述第二动态调试标志对应的业务场景日志;若所述第二动态调试标志不等于预设的第二动态调试标志阈值,则执行所述应用程序的下一步代码。
11.进一步地,所述日志打印方法还包括:获取所述应用程序对应的日志框架;基于所述第一动态调试标志和/或所述动态调试信息调用所述日志框架,以打印目标业务场景日志。
12.根据本技术的又一方面,提供了一种日志打印装置,所述日志打印装置包括:接收模块,用于接收日志打印请求;标识获取模块,用于在应用程序入口处识别输入数据对应的各业务场景,得到与各业务场景对应的多个业务场景标识;判断模块,用于将所述多个业务场景标识输入至统一的处理通道,分别判断各所述业务场景标识是否对应配置有动态调试组件,其中:若所述业务场景标识对应配置有动态调试组件,则设置该业务场景标识对应的第一动态调试标志;若所述业务场景标识对应配置无动态调试组件,则检测所述输入数据是否对应设置有动态调试信息;打印模块,用于基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求。
13.根据本技术的又一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述日志打印方法。
14.根据本技术的又一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述日志打印方法。
15.通过在应用程序入口处识别输入数据对应的各业务场景得到与各业务场景对应的多个业务场景标识,并将所述多个业务场景标识输入至统一的处理通道,分别判断各所
述业务场景标识是否对应配置有动态调试组件,在所述业务场景标识对应配置有动态调试组件的情况下设置该业务场景标识对应的第一动态调试标志,在所述业务场景标识对应配置无动态调试组件的情况下检测所述输入数据是否对应设置有动态调试信息,最后基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求,根据本技术的各方面能够实现针对特定场景精确输出该特定场景所必需的日志的能力,进而以较小的系统资源消耗代价来达到打印特定场景日志的目的,通过对日志打印动态调试处理,从而降低日志打印阻塞的风险,提升系统资源的利用率和运行效率。
附图说明
16.下面结合附图,通过对本技术的具体实施方式详细描述,将使本技术的技术方案及其它有益效果显而易见。
17.图1示出本技术实施例的日志打印方法的流程图。
18.图2示出本技术实施例的日志打印方法的示意图。
19.图3示出本技术实施例的日志打印装置的框图。
20.图4示出本技术实施例的电子设备的结构示意图。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.在本技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
23.在本技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接连接,也可以通过中间媒介间接连接,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
24.下文的公开提供了许多不同的实施方式或例子用来实现本技术的不同结构。为了简化本技术的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅为示例,并且目的不在于限制本技术。此外,本技术可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本技术提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意
识到其他工艺的应用和/或其他材料的使用。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。
25.图1示出本技术实施例的日志打印方法的流程图。如图1所示,所述日志打印方法可包括:
26.步骤s1:接收日志打印请求;
27.其中,所述日志打印请求可以由编写应用程序的开发人员发出,也可以由测试应用程序的测试人员发出。举例来说,开发人员编写好的应用程序首先送至测试人员处进行测试。若测试结果与期望结果不相符,则测试人员可先行打印应用程序的部分日志,通过该部分日志查看测试异常是否由于测试本身的误操作等测试相关的因素引起。若测试人员确认测试异常由非测试因素引起,可引入开发人员进一步检查。开发人员可调整日志输出的级别,通过更全面的日志分析来定位程序异常的位置,从而为解决测试异常问题提供支撑。
28.在本技术中,日志打印可发生在各种各样的业务场景。例如,应用程序中的部分参数不能为空,当该部分参数为空时,说明程序出现异常,此时需要打印与该部分参数相关的日志,以定位异常问题。又例如,在调试应用程序的过程中,可能出现难以查看控制台信息的情况,此时需要将堆栈信息记录在日志中,以在应用程序运行异常时,快速定位出现异常的代码。
29.步骤s2:在应用程序入口处识别输入数据对应的各业务场景,得到与各业务场景对应的多个业务场景标识;
30.其中,所述应用程序入口可以是应用程序的起始部分。由于在应用程序入口处传递输入的数据没有经过任何处理,因此在应用程序入口处即开始识别输入数据对应的各业务场景,能够容易判断应用程序输入的原始数据是否符合预期。
31.所述输入数据可包括与各业务场景相关的参数,这些参数可用于表征业务场景的具体的业务特性。举例来说,当需要将堆栈信息记录在日志中时,若输入数据中含有与堆栈相关的线程名称或栈顶,则可以确定所述输入数据对应的其中一个业务场景为代码异常的定位。需要说明的是,所述输入数据可以是一个数据集合,包括一个或多个业务场景。对于每个业务场景,均可以设置有与该业务场景对应的业务场景标识,以对不同的业务场景进行区分。
32.示例性的,所述业务场景标识可以是字符序列,用于标识与该业务场景标识对应的业务场景。例如,业务场景标识01可对应于代码异常位置确定的业务场景,业务场景标识02可对应于传递参数数值错误的业务场景。
33.进一步地,在应用程序入口处识别输入数据对应的各业务场景,得到与各业务场景对应的多个业务场景标识,包括:
34.步骤s21:获取所有业务场景对应的多个业务参数,并将所述多个业务参数预先存储至数据库中;
35.在本技术中,可以先收集将所有可能的业务场景对应的多个业务参数,然后将所述多个业务参数进行数据清洗、去重、补缺等方式进行预处理,并将预处理后的多个业务参数按照业务场景的类别预先存储至数据库中,如此能够预先对于多个业务参数进行缓存,加快数据的读写速度。
36.步骤s22:根据输入数据中的至少一个所述业务参数识别当前的各业务场景;
37.其中,一个所述业务场景可以对应一个所述业务参数,也可以对应多个所述业务参数,即本技术实施例的业务场景可以采用一个或多个业务参数进行表征。可以理解,本技术对于所述业务参数与所述业务场景之间的映射关系并不限定。
38.步骤s23:在应用程序入口处获取与所述当前的各业务场景对应的多个业务场景标识。
39.在根据输入数据中的至少一个所述业务参数识别当前的各业务场景,可以根据预先设置的业务场景与对应的业务场景标识之间的映射关系,来获取与所述当前的各业务场景对应的多个业务场景标识。在本技术中,以一个业务场景对应一个业务场景标识为例进行说明。
40.步骤s3:将所述多个业务场景标识输入至统一的处理通道,分别判断各所述业务场景标识是否对应配置有动态调试组件,其中:若所述业务场景标识对应配置有动态调试组件,则设置该业务场景标识对应的第一动态调试标志;若所述业务场景标识对应配置无动态调试组件,则检测所述输入数据是否对应设置有动态调试信息;
41.其中,所述动态调试组件可设置在所述处理通道内。所述处理通道为统一的通道,可用于集中处理所述多个业务场景。对于本技术而言,可针对每个业务场景在所述处理通道内预先配置所述动态调试组件。当然,对于不需要打印的业务场景,在所述处理通道内可以不配置所述动态调试组件。需要说明的是,在本技术中,所述动态调试组件的配置是动态的,是否配置所述动态调试组件可根据实际需要进行确定。在一个示例中,所述动态调试组件可以是自定义函数。
42.在将所述多个业务场景标识输入至统一的处理通道后,可首先分别判断各所述业务场景标识是否对应配置有动态调试组件。若所述业务场景标识对应配置有动态调试组件,说明该业务场景标识对应的业务场景需要进行打印,此时,可设置该业务场景标识对应的第一动态调试标志。所述第一动态调试标志可以是一个固定的数值。进一步地,若所述业务场景标识对应配置无动态调试组件,说明该业务场景标识对应的业务场景不需要进行打印,此时,可进一步检测所述输入数据是否对应设置有动态调试信息。
43.因此,在本技术中,在需要开启动态日志时,可以通过两种方式启用动态日志。第一种方式是基于所述第一动态调试标志的。示例性的,对于第一种方式来说,可以在特定业务场景的运营管理段来设置第一动态调试标志,则该特定业务场景的所有调用均会打印所需要的日志。所述运营管理段可以是在处理该特定业务场景中的任意一个处理阶段。第二种方式是基于所述动态调试信息的。所述动态调试信息是与所述输入数据相关联的,因此也可以在外部的输入数据中,设置其他的标志位来启用动态日志。
44.上述两种方式均能够用于开启动态调试标识的能力。相比于现有技术中原始日志库无法动态开启日志而言,本技术实施例通过设置两种不同的方式来启用动态日志,能够大幅缩小日志打印的数量以及对系统的消耗,实现细粒度的日志打印控制。
45.进一步地,将所述多个业务场景标识输入至统一的处理通道,分别判断各所述业务场景标识是否对应配置有动态调试组件,包括:
46.步骤s31:获取各所述业务场景标识对应的多个功能组件;
47.步骤s32:判断各所述功能组件是否访问所述处理通道的相关属性,其中:若所述功能组件访问所述处理通道的相关属性,则在所述处理通道调用所述功能组件时,该功能
组件对应配置有动态调试组件;若所述功能组件无法访问所述处理通道的相关属性,则在所述处理通道调用所述功能组件时,该功能组件对应配置无动态调试组件。
48.其中,所述功能组件也称功能构成部分。所述处理通道内可包括多个功能组件。在分别判断各所述业务场景标识是否对应配置有动态调试组件时,可首先获取各所述业务场景标识对应的多个功能组件,然后再判断各所述功能组件是否访问所述处理通道的相关属性。所述处理通道的相关属性可以是与所述处理通道相关联的特征,例如参数值、内容等。
49.具体的,若所述功能组件访问所述处理通道的相关属性,说明所述功能组件能够对所述处理通道的相关属性正常访问,此时,可在所述处理通道调用所述功能组件时,确定该功能组件对应配置有动态调试组件。换句话说,在所述处理通道调用所述功能组件时,可将动态调试组件自动设置在该功能组件上,这样所述功能组件能够顺利自动获取动态调试组件。而若所述功能组件无法访问所述处理通道的相关属性,说明所述功能组件无法对所述处理通道的相关属性进行访问,则在所述处理通道调用所述功能组件时,确定该功能组件对应配置无动态调试组件。此外,本技术的动态调试标识不通过线程上下文传递,而通过处理通道以及功能组件自身的专用属性来传递。
50.进一步地,所述处理通道入口设置有动态调试开关,若所述业务场景标识对应配置无动态调试组件,则检测所述输入数据是否对应设置有动态调试信息,包括:
51.步骤s321:根据所述输入数据判断是否打开所述动态调试开关,其中:在打开所述动态调试开关的情况下,所述输入数据对应设置有动态调试信息;在关闭所述动态调试开关的情况下,所述输入数据对应设置无动态调试信息。
52.具体的,在处理通道的配置入口处,本技术实施例可以根据具体的业务场景来设置动态调试开关的逻辑。这样能够方便在需要时在所述输入数据中对是否设置动态调试作进一步的判断。其中,在打开所述动态调试开关的情况下,表明当前的业务场景对应的输入数据对应设置有动态调试信息;而在关闭所述动态调试开关的情况下,表明当前的业务场景对应的输入数据对应设置无动态调试信息。
53.步骤s4:基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求。
54.在本技术中,基于所述第一动态调试标志响应所述日志打印请求与基于所述动态调试信息响应所述日志打印请求是两种不同的日志打印方式,两者可以相互替换,也可以同时进行。值得注意的是,对于基于所述动态调试信息响应所述日志打印请求,可以对动态日志作进一步的判断。
55.进一步地,基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求,包括:
56.步骤s41:判断所述第一动态调试标志是否等于预设的第一动态调试标志阈值,其中:若所述第一动态调试标志等于预设的第一动态调试标志阈值,则打印与所述第一动态调试标志对应的业务场景日志;若所述第一动态调试标志不等于预设的第一动态调试标志阈值,则执行所述应用程序的下一步代码。
57.其中,所述第一动态调试标志阈值可以预先设置,用于检验所述第一动态调试标志是否为需要打印的目标场景所对应的第一动态调试标志。具体来说,若所述第一动态调试标志等于预设的第一动态调试标志阈值,说明该第一动态调试标志对应的业务场景需要
打印,此时打印与所述第一动态调试标志对应的业务场景日志;若所述第一动态调试标志不等于预设的第一动态调试标志阈值,说明该第一动态调试标志对应的业务场景不需要打印,此时可跳转执行所述应用程序的下一步代码。
58.进一步地,基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求,还包括:
59.步骤s42:判断所述输入数据是否对应设置有动态调试信息,其中:若所述输入数据对应设置无动态调试信息,则设置与该输入数据对应的第二动态调试标志;若所述输入数据对应设置有动态调试信息,则设置所述第一动态调试标志;
60.其中,所述第二动态调试标志可以设置在所述输入数据中,通过应用程序的代码部分进行识别。在本技术中,判断所述输入数据是否对应设置有动态调试信息可以是设置对应的第二动态调试标志的先决条件。在所述输入数据对应设置无动态调试信息才设置与该输入数据对应的第二动态调试标志,否则设置所述第一动态调试标志。
61.步骤s43:在设置与该输入数据对应的第二动态调试标志的情况下,判断所述第二动态调试标志是否等于预设的第二动态调试标志阈值,其中:若所述第二动态调试标志等于预设的第二动态调试标志阈值,则打印与所述第二动态调试标志对应的业务场景日志;若所述第二动态调试标志不等于预设的第二动态调试标志阈值,则执行所述应用程序的下一步代码。
62.其中,步骤s43的处理过程与步骤s41类似,不同的是步骤s43的处理对象为第二动态调试标志。在实际应用中,可以基于所述第一动态调试标志和/或所述第二动态调试标志响应所述日志打印请求。所述第二动态调试阈值可以与所述第一动态调试阈值可以相等,也可以根据实际需要进行设置。
63.步骤s52:基于所述第一动态调试标志和/或所述动态调试信息调用所述日志框架,以打印目标业务场景日志。
64.图2示出本技术实施例的日志打印方法的示意图。
65.如图2所示,在一个示例中,可以先接收外部的输入数据,然后根据外部的输入数据来获取业务场景标识,然后检测该业务场景标识对应的业务场景是否配置了动态调试。具体来说,可以通过判断所述业务场景标识是否对应配置有动态调试组件来判断业务场景是否配置了动态调试。在该业务场景标识对应的业务场景配置了动态调试的情况下,可以设置第一动态调试标志,然后判断该第一动态调试标志是否等于预设阈值。若该第一动态调试标志等于预设阈值,则记录日志;若该第一动态调试标志等于预设阈值,则执行其他功能代码。
66.在该业务场景标识对应的业务场景没有配置动态调试的情况下,可以跳转到另一分支,判断输入信息是否包括动态调试标志。具体来说,可以通过判断所述输入数据是否对应设置有动态调试信息来确定输入信息是否包括动态调试标志。若输入信息包括动态调试标志,则将该动态调试标志与预设阈值进行比较;若输入信息不包括动态调试标志,则设置第二动态调试标志,并将第二调试标志与预设阈值进行比较。这里的预设阈值可以是第一动态调试标志阈值,也可以是第二动态调试标志阈值。
67.进一步地,所述日志打印方法还包括:
68.步骤s51:获取所述应用程序对应的日志框架;
69.示例性的,所述日志框架可以是log4j日志框架。log4j日志框架可用于控制日志信息输出的目的地,例如控制台或文件等,也可以用于控制每条日志的输出格式。日志信息输出的目的地以及输出格式等参数可以通过日志配置文件灵活地配置,不需要修改应用软件代码。log4j日志框架可包括记录器、输出器、格式器等组件。
70.记录器(loggers)用于控制日志的输出级别。在一个示例中,日志的输出级别由高至低可依次为:off、fatal、error、warn、info、debug、trace、all。off等级最高,表示关闭所有日志记录开关;fatal等级表示输出致命错误;error等级表示输出错误信息;warn等级表示输出警告信息;info等级表示输出提示信息;debug等级表示输出调试信息;trace等级表示输出追踪信息;all等级最低,表示打开所有日志记录开关。在实际应用中,为了精简日志的打印内容,也可以设置日志的输出级别为五级或四级。可以理解,本技术对于日志的输出级别并不限定。
71.输出器(appender)用于将日志信息写入目标目的地。例如,控制台输出器用于将日志信息输出至控制台,文件输出器用于将日志信息写入至指定文件,拆分文件输出器用于将日志信息写入至多个文件,数据库输出器用于将日志信息写入至数据库表。
72.格式器(layout)用于接收输出器输出的日志信息,并将该日志信息格式化为目标样式。例如,简单格式器可将日志信息输出为简单格式,例如info等级的消息;自定义格式器可根据自定义的转换模式,返回格式化后的日志信息结果。
73.进一步地,通过以上细粒度的日志打印控制方式,应用系统在上线运行后,可以灵活的开启特定业务场景下的日志。考虑到日志库提供的基础能力,本技术实施例还可以实现多个层次的日志内容与范围控制。具体的,本技术实施例可以调整特定日志记录器的日志级别,从而记录日志记录器影响范围内的所有日志;也可以在业务场景配置中,开启特定业务场景的动态调试开关,则关于这个业务场景的后续所有调用都会记录相关日志。在应用系统中,一般配置开关都可以动态生效,这意味着开关生效后,如果有多笔这个业务场景的交易,则每笔业务的处理都会记录相关过程日志。
74.举例来说,在一次特定的业务调用时,发起方修改输入信息中预置的可以识别的标志位,置为启用动态日志的状态,则应用系统在处理该笔业务处理时,会记录相关日志。在这种情况下,只记录一笔交易的日志,不会与后面的业务处理过程发生关联。如果下一笔业务处理的输入信息中,不包括特定的标志位,则日志记录行为不会发生。如此能够通过动态调试日志处理方案,结合开源日志库以后的日志器日志级别调整能力,在多个层次上,实现日志的动态调整能力,精准的实现单次业务处理过程日志记录能力的开启,更加精细的进行细颗粒度的日志打印,灵活性提高。
75.综上,相比于现有技术中常见日志记录方式效率低的不足,本技术提出的日志打印方法在支持常规日志记录器的日志级别调整等粗颗粒度方案的同时,也能够支持细粒度日志打印控制。具体来说,本技术提出的日志打印方法能够实现针对特定场景精确输出该特定场景所必需的日志的能力,进而以较小的系统资源消耗代价来达到打印特定场景日志的目的,而不必打开大范围的日志记录功能。通过对日志打印动态调试处理,从而降低日志打印阻塞的风险,提升系统资源的利用率和运行效率。
76.图3示出本技术实施例的日志打印装置的框图。
77.如图3所示,本技术实施例的日志打印装置30可包括:
78.接收模块31,用于接收日志打印请求;
79.标识获取模块32,用于在应用程序入口处识别输入数据对应的各业务场景,得到与各业务场景对应的多个业务场景标识;
80.判断模块33,用于将所述多个业务场景标识输入至统一的处理通道,分别判断各所述业务场景标识是否对应配置有动态调试组件,其中:若所述业务场景标识对应配置有动态调试组件,则设置该业务场景标识对应的第一动态调试标志;若所述业务场景标识对应配置无动态调试组件,则检测所述输入数据是否对应设置有动态调试信息;
81.打印模块34,用于基于所述第一动态调试标志和/或所述动态调试信息响应所述日志打印请求。
82.此外,本技术提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述日志打印方法。
83.进一步地,本技术还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述日志打印方法。
84.图4示出本技术实施例的电子设备的结构示意图。
85.如图4所示,所述电子设备可用于实现所述基于业务代码的测试方法。具体的,所述电子设备可以包括计算机系统。需要说明的是,图3示出的电子设备仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
86.如图4所示,计算机系统包括中央处理单元(central processing unit,cpu)1801,其可以根据存储在只读存储器(read-only memory,rom)1802中的程序或者从存储部分1808加载到随机访问存储器(random access memory,ram)1803中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在ram 1803中,还存储有系统操作所需的各种程序和数据。cpu 1801、rom 1802以及ram 1803通过总线1804彼此相连。输入/输出(input/output,i/o)接口1805也连接至总线1804。
87.以下部件连接至i/o接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至i/o接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
88.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(cpu)1801执行时,执行本技术的系统中限定的各种功能。
89.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以
是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
90.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
91.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
92.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
93.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
94.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本技术实施方式的
方法。
95.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
96.以上对本技术实施例所提供的基于业务代码的测试方法及其相关设备进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例的技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献