CN112579553B - 用于记录信息的方法和装置 - Google Patents
用于记录信息的方法和装置 Download PDFInfo
- Publication number
- CN112579553B CN112579553B CN202011469056.3A CN202011469056A CN112579553B CN 112579553 B CN112579553 B CN 112579553B CN 202011469056 A CN202011469056 A CN 202011469056A CN 112579553 B CN112579553 B CN 112579553B
- Authority
- CN
- China
- Prior art keywords
- executed
- parameter
- annotation
- information
- recording
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 334
- 230000004044 response Effects 0.000 claims abstract description 39
- 230000005856 abnormality Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施例公开了用于记录信息的方法和装置。该方法的一具体实施方式包括:响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,其中,注解参数用于描述待执行方法的记录用信息;根据注解参数,确定针对待执行方法的记录内容以及记录。该实施方式有助于提升信息记录效率。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及用于记录信息的方法和装置。
背景技术
日志可以为服务器、工作站、应用等记录需要的或有价值的信息。一般地,日志可以记录在日志(log)文件中,其中每一行日志可以记录用于描述日期、时间、使用者以及动作等信息。通过对日志文件的分析,可以了解系统或应用的运行情况等信息,以便于分析系统或应用的健康状况,及时发现问题并快速定位解决问题。
对于技术人员来说,在系统或应用的开发过程中,根据实际的需求变化通常会在程序中打印许多日志来记录信息。例如,对每条日志设置日志头或业务关键词以便于后续检索、记录数据变化、采集运行环境数据等等。技术人员在程序中打印日志是比较繁琐的,而且可能忘记打印日志或出错。基于此,技术人员通常会借助现有的一些日志类应用对程序中的日志进行设置和管理。
发明内容
本公开的实施例提出了用于记录信息的方法和装置。
第一方面,本公开的实施例提供了一种用于记录信息的方法,该方法包括:响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,其中,注解参数用于描述待执行方法的记录用信息;根据注解参数,确定针对待执行方法的记录内容以及记录。
在一些实施例中,记录用信息包括待执行方法的日志信息;以及根据注解参数,确定针对待执行方法的记录内容以及记录,包括:根据注解参数,确定待执行方法的日志内容作为记录内容。
在一些实施例中,注解参数包括用于指示待执行方法的各条日志记录的公共关键词的第一参数。
在一些实施例中,根据注解参数,确定针对待执行方法的记录内容以及记录,包括:获取第一参数的参数值作为公共关键词;按照预设的日志格式,在待执行方法的日志文件中记录所获取的参数值,其中,日志格式用于指示公共关键词在日志文件包括的日志记录中的位置。
在一些实施例中,注解参数包括用于指示是否记录待执行方法的参数的第二参数,其中,待执行方法的参数包括出参和/或入参;以及根据注解参数,确定针对待执行方法的记录内容以及记录,包括:响应于确定第二参数指示记录待执行方法的参数,采集待执行方法的参数以及记录。
在一些实施例中,注解参数包括用于指示是否记录待执行方法的执行信息的第三参数;以及根据注解参数,确定针对待执行方法的记录内容以及记录,包括:响应于确定第三参数指示记录待执行方法的执行信息,且响应于检测到待执行方法开始执行,采集待执行方法的执行信息,以及获取待执行方法的标识信息;记录标识信息与执行信息之间的对应关系。
在一些实施例中,注解参数包括用于指示待执行方法的标识信息的第四参数;以及获取待执行方法的标识信息,包括:响应于确定第四参数不为空,获取第四参数的参数值作为待执行方法的标识信息;响应于确定第四参数为空,利用反射技术获取待执行方法针对预设属性的属性值,以及根据属性值,生成待执行方法的标识信息。
在一些实施例中,注解参数包括用于指示待捕获的异常的第五参数;以及根据注解参数,确定针对待执行方法的记录内容以及记录,包括:响应于在待执行方法的执行过程中检测到异常,确定检测到的异常是否属于第五参数指示的异常;响应于确定检测到的异常属于第五参数指示的异常,输出告警信号。
第二方面,本公开的实施例提供了一种用于记录信息的装置,该装置包括:获取单元,被配置成响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,其中,注解参数用于描述待执行方法的记录用信息;记录单元,被配置成根据注解参数,确定针对待执行方法的记录内容以及记录。
在一些实施例中,记录用信息包括待执行方法的日志信息;以及记录单元进一步被配置成:根据注解参数,确定待执行方法的日志内容作为记录内容。
在一些实施例中,注解参数包括用于指示待执行方法的各条日志记录的公共关键词的第一参数。
在一些实施例中,记录单元进一步被配置成:获取第一参数的参数值作为公共关键词;按照预设的日志格式,在待执行方法的日志文件中记录所获取的参数值,其中,日志格式用于指示公共关键词在日志文件包括的日志记录中的位置。
在一些实施例中,注解参数包括用于指示是否记录待执行方法的参数的第二参数,其中,待执行方法的参数包括出参和/或入参;以及记录单元进一步被配置成:响应于确定第二参数指示记录待执行方法的参数,采集待执行方法的参数以及记录。
在一些实施例中,注解参数包括用于指示是否记录待执行方法的执行信息的第三参数;以及记录单元进一步被配置成:响应于确定第三参数指示记录待执行方法的执行信息,且响应于检测到待执行方法开始执行,采集待执行方法的执行信息,以及获取待执行方法的标识信息;记录标识信息与执行信息之间的对应关系。
在一些实施例中,注解参数包括用于指示待执行方法的标识信息的第四参数;以及获取单元进一步被配置成:响应于确定第四参数不为空,获取第四参数的参数值作为待执行方法的标识信息;响应于确定第四参数为空,利用反射技术获取待执行方法针对预设属性的属性值,以及根据属性值,生成待执行方法的标识信息。
在一些实施例中,注解参数包括用于指示待捕获的异常的第五参数;以及记录单元进一步被配置成:响应于在待执行方法的执行过程中检测到异常,确定检测到的异常是否属于第五参数指示的异常;响应于确定检测到的异常属于第五参数指示的异常,输出告警信号。
第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本公开的实施例提供的用于记录信息的方法和装置,通过对期望记录日志的方法添加预设注解,预设注解中的注解参数用于描述方法的记录用信息,从而对于具有预设注解的方法,通过获取该方法具有的预设注解的注解参数,并根据获取的注解参数确定记录内容并进行记录,由此可以利用注解和注解参数便捷地对日志所记录的内容进行管理,而且对于技术人员来说,省去了在代码中针对每个期望记录的内容,手动编写用于打印日志的过程,从而提升应用开发效率,也便于后续利用日志对应用进行维护。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本公开的用于记录信息的方法的一个实施例的流程图;
图3是根据本公开的实施例的用于记录信息的方法的一个应用场景的示意图;
图4是根据本公开的用于记录信息的方法的又一个实施例的流程图;
图5是根据本公开的用于记录信息的装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的用于记录信息的方法或用于记录信息的装置的实施例的示例性架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用。例如浏览器类应用、搜索类应用、即时通信工具、社交平台软件、浏览器类应用、日志记录或处理类应用等等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103提供数据支持的后端服务器。服务器105可以存储在终端设备101、102、103上运行的应用的日志文件,并且可以根据终端设备101、102、103的查询请求查找并反馈指定日志内容以便于检查终端设备101、102、103上运行的应用存在的问题。
需要说明的是,本公开的实施例所提供的用于记录信息的方法一般由终端设备101、102、103执行,相应地,用于记录信息的装置一般设置于终端设备101、102、103中。若终端设备101、102、103在本地或指定数据库等记录其上安装的应用的信息,则示例性系统架构100可以不存在服务器105和网络104。
还需要指出的是,服务器105中也可以安装有各种应用以实现不同的功能。此时,根据实际需求,服务器105上安装的应用也可以记录指定信息。此时,用于记录信息的方法也可以由服务器105执行,相应地,用于记录信息的装置也可以设置于服务器105中。此时,示例性系统架构100可以不存在终端设备101、102、103和网络104。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本公开的用于记录信息的方法的一个实施例的流程200。该用于记录信息的方法包括以下步骤:
步骤201,响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数。
在本实施例中,待执行方法可以是系统或应用开发中为了实现某个功能或需求所用的方法。一般地,方法具有方法名和方法主体。其中,方法名通常用于标识该方法,同时也可以描述该方法的用途。方法主体通常就是调用方法时所执行的代码块。应当可以理解,不同的开发语言中,方法的写法可以不同。
注解是技术人员在开发过程中在代码中添加的一种特殊标记。注解可以声明在包、类、字段、方法、局部变量等前面用以说明和注释,但不会直接影响到程序的语义。注解可以在编译、类加载、运行时等阶段被读取并执行相应的处理。技术人员根据实际的需求可以利用注解在不改变原有代码和逻辑的情况下在代码中嵌入补充信息。注解的形式一般为“@注解名”。
预设注解可以指技术人员根据实际的应用需求定义的注解。一般地,预设注解可以携带有注解参数,注解参数可以用于描述所注解的方法的记录用信息。注解参数可以包括一个或多个参数,每个参数可以包括参数名和对应的参数值。不同的参数可以描述不同的记录用信息。其中,记录用信息可以指期望记录的信息。根据实际的应用需求的不同,记录用信息可以不同。不同的执行方法的记录用信息也可以不同。
作为示例,待执行方法的记录用信息可以包括该方法的执行日期、执行时间等。此时,方法“F”的注解参数可以包括参数名为“A”和参数名为“B”的两个参数,且参数“A”的取值为“1”,用于指示记录方法“F”的执行日期,参数“B”的取值为“1”,用于指示记录方法“F”的执行时间。反之,参数“A”的取值为“0”,用于指示不记录方法“F”的执行日期,参数“B”的取值为“0”,用于指示不记录方法“F”的执行时间。
用于记录信息的方法的执行主体(如图1所示的终端设备101、102、103等)可以在应用运行时检测代码中的预设注解,从而确定具有预设注解的待执行方法。例如,可以利用现有的一些拦截器(如Spring框架中的拦截器等)拦截具有预设注解的待执行方法。上述执行主体在检测到具有预设注解的待执行方法后,可以获取待执行方法具有的预设注解所携带的注解参数,以了解期望记录的信息。
步骤202,根据注解参数,确定针对待执行方法的记录内容以及记录。
在本实施例中,上述执行主体可以根据待执行方法具有的预设注解的注解参数所描述的记录用信息,确定记录用信息指示记录的信息作为待执行方法的记录内容,然后对待执行方法的记录内容进行记录。
根据不同的记录用信息,可以采用不同的确定待执行方法的记录内容的方法。作为示例,若记录用信息包括待执行方法的执行时间,则在检测到待执行方法开始执行时,可以获取当前的系统时间作为记录内容。
在确定待执行方法的记录内容之后,可以根据实际的需求采用不同的方法记录待执行方法的记录内容。例如,可以将记录内容存储至指定目录下的日志文件中。又例如,可以利用现有的日志记录工具记录待执行方法的记录内容。
在本实施例的一些可选的实现方式中,待执行方法的记录用信息可以包括待执行方法的日志信息。其中,日志信息可以包括与待执行方法的日志相关的各种信息。这种情况下,可以根据注解参数指示的日志信息,确定待执行方法的日志内容作为记录内容,并进行记录。
作为示例,日志信息可以包括用于指示是否记录待执行方法的日志的信息。若日志信息指示不记录待执行方法的日志,则可以确定待执行方法的日志内容为空,进而可以生成空的日志文件或者输出用于提示日志为空的信息。
若日志信息指示记录待执行方法的日志,则注解参数所描述的记录用信息还可以包括期望记录的日志内容,从而根据注解参数确定日志内容进行记录。
由此可以利用注解信息描述或记录需要记录的日志信息,从而可以直接根据注解参数获取对应的日志内容并记录,从而实现便捷地记录和管理待执行方法的日志信息。
在本实施例的一些可选的实现方式中,注解参数可以包括第一参数,其中,第一参数用于指示待执行方法的各条日志记录的公共关键词。待执行方法的每条日志记录可以记录待执行方法相关的操作。公共关键词可以指待执行方法的每条日志记录都包含的关键词。
公共关键词可以由技术人员根据实际的应用需求预先设置。例如,公共关键词可以为技术人员为了便于后续的日志检索设置的包含指定内容的日志头。又例如,公共关键词可以为技术人员为了便于了解日志记录所关联的业务而设置的业务关键词。再例如,公共关键词可以包括待执行方法的标识。
需要说明的是,根据实际的应用需求,针对不同的待执行方法,可以设置不同的公共关键词。
这种情况下,可以获取第一参数的参数值,并将获取的参数值作为公共关键词添加到待执行方法的每条日志记录中。公共关键词在每条日志记录中的位置可以相同,也可以不同,具体可以由技术人员预先根据实际的应用需求灵活设置。
可选地,可以按照预设的日志格式,在待执行方法的日志文件中记录所获取的参数值。其中,待执行方法的日志文件的存储地址可以预先设置。待执行方法的日志文件中可以存储待执行方法的各条日志记录。
日志格式可以用于指示公共关键词在日志文件包括的日志记录中的位置。日志格式可以由技术人员根据实际的应用需求灵活设置。例如,可以预先设置公共关键词记录在执行时间之后。此时,可以在每条日志记录的执行时间之后添加所获取的参数值。
由此可以利用注解参数记录需要在日志中记录的公共关键词,不需要针对每条日志都设置一遍公共关键词,避免了代码冗余问题,提升了开发效率,而且可以按照预设的格式记录日志,提升日志记录效率。
在本实施例的一些可选的实现方式中,注解参数可以包括第二参数。其中,第二参数用于指示是否记录待执行方法的参数。待执行方法的参数可以包括待执行方法的出参和/或入参。
具体地,可以根据第二参数的参数值确定是否记录待执行方法的参数。需要说明的是,若待执行方法的参数包括出参和入参,则第二参数可以包括第一子参数和第二子参数。其中,第一子参数可以用于指示是否记录待执行方法的出参,第二子参数可以用于指示是否记录待执行方法的入参。
响应于确定第二参数指示记录待执行方法的参数,可以采集待执行方法的参数并进行记录。根据待执行方法的参数的不同,可以使用不同的方法进行采集。
例如,对于待执行方法的入参,可以利用反射技术获取待执行方法的入参。对于待执行方法的出参,可以在待执行方法执行完成后,获取待执行方法的出参。
利用注解参数指示是否记录方法的参数,从而可以根据注解参数记录方法的参数,不需要技术人员手动记录需要记录的方法的参数,提升针对方法的参数记录的便捷性。
在具体的代码开发中,方法之间通常具有复杂的调用关系。例如,第一方法调用第二方法,第三方法也调用第二方法。这种情况下通常需要在第一方法调用第二方法时记录第一方法的日志指定的公共关键词,在第三方法调用第二方法时记录第三方法的日志指定的公共关键词,但现有技术中通过在第二方法处编写记录日志信息的代码无法解决该问题。而本公开的提出的利用方法注解和注解参数描述需要记录的信息的方式,可以有效且便捷地解决这一问题,提升了信息记录的灵活性。
在本实施例的一些可选的实现方式中,注解参数可以包括第五参数。其中,第五参数用于指示待捕获的异常。待捕获的异常可以根据实际的应用需求灵活设置。这种情况下,响应于在待执行方法的执行过程中检测到异常,可以确定检测到的异常是否属于第五参数指示的待捕获的异常。
响应于确定检测到的异常属于第五参数指示的异常,可以输出告警信号以提醒技术人员技术对异常进行处理。其中,告警信号可以是各种类型的用于提示的信号。作为示例,可以利用声光报警器输出告警信号,也可以向预先指定的邮箱发送邮件作为告警信号。
利用注解参数指示需要捕获的异常,从而可以根据注解参数对捕获的异常进行判断和记录,不需要技术人员手动编写多个捕获异常的代码,降低代码冗余性,提升开发效率。
继续参见图3,图3是根据本实施例的用于记录信息的方法的一个示意性的应用场景300。在图3的应用场景中,在应用运行过程中,检测到预设注解“@LogRecord”时,可以读取该注解的注解参数。具体地,如图中标号301所示,注解参数包括三个参数。第一个参数的参数名为“useLogHeader”,参数值为“ture”,用于指示记录日志头。第二个参数的参数名为“logHeader”,参数值为“根据用户信息查找”,用于指示日志头为根据用户信息查找。第三个参数的参数名为“useParam”,参数值为“true”,用于指示记录方法入参。
进一步地,如图中标号302所示,可以利用反射技术获取到方法“A”的入参的参数名为“userId”,参数值为“01”,用于指示用户ID为“01”。之后,可以将获取到的日志头和方法“A”的方法入参记录在日志文件303中。
现有技术中,技术人员在开发过程中,为了后续检查问题等目的,需要打印很多日志信息,但目前通常都需要技术人员手动将需要记录的信息一条一条写入到日志中。例如,需要手动将需要记录的日志信息(如日志头、出入参等等)手动写入到日志中、在更改需要记录的日志信息(如更改日志头的内容时),需要一条一条变更日志内容、手动编写多条抓取异常的代码。
本公开的上述实施例利用方法注解,并使用注解参数指示方法所需要记录的日志信息、参数信息、异常信息等各种记录用信息,从而在检测到方法具有指定注解时,直接读取注解参数以获取对应的记录用信息并记录。对于技术人员来说,不需要针对每项需要记录的信息,都需要编写一次对应的记录代码,也不需要在更改记录内容时重新编辑对应的记录代码,提升了信息记录效率。
进一步参考图4,其示出了用于记录信息的方法的又一个实施例的流程400。该用于记录信息的方法的流程400,包括以下步骤:
步骤401,响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,注解参数包括用于指示是否记录待执行方法的执行信息的第三参数。
在本实施例中,待执行方法的执行信息可以包括与待执行方法的执行过程相关的各种信息。例如,执行信息包括执行时长、执行结果、每秒调用次数等等。
步骤402,响应于确定第三参数指示记录待执行方法的执行信息,且响应于检测到待执行方法开始执行,采集待执行方法的执行信息,以及获取待执行方法的标识信息。
在本实施例中,在应用的运行过程中,可以利用各种方法对待执行方法进行检测,以确定待执行方法是否开始执行,也可以利用各种方法采集待执行方法的执行信息。针对不同的执行信息,可以使用不同的采集方法进行采集。例如,可以利用现有的一些检测工具对应用中的待执行方法进行检测,并采集待执行方法的执行信息。
待执行方法的标识信息可以用于标识待执行方法。待执行方法的标识信息可以由技术人员预先设置。
可选地,注解参数可以包括第四参数,其中,第四参数用于指示待执行方法的标识信息。此时,第四参数的参数值即可以为待执行方法的标识信息。
这种情况下,响应于确定第四参数不为空,即在注解参数中已预先设置待执行方法的标识信息。此时,可以直接获取第四参数的参数值作为待执行方法的标识信息。
响应于确定第四参数为空,即在注解参数中未预先设置待执行方法的标识信息。此时,可以利用反射技术获取待执行方法针对预设属性的属性值,以及根据所获取的属性值,生成待执行方法的标识信息。
其中,预设属性包括待执行方法的各种属性。例如预设属性可以包括但不限于:待执行方法的方法名、待执行方法所属类的类名、待执行方法所属类所在的包名等等。
根据不同的预设属性的属性值,可以利用各种方法生成待执行方法的标识信息。例如,可以组合待执行方法的各预设属性的属性值,并将得到的字符串确定为待执行方法的标识信息。又例如,可以对待执行方法的各预设属性的属性值进行哈希运算,并将运算结果确定为待执行方法的标识信息。
作为示例,可以利用反射技术获取并组合待执行方法的方法名、待执行方法所属类的类名、待执行方法所属类所在的包名,将得到的字符串作为待执行方法的标识信息。
步骤403,记录标识信息与执行信息之间的对应关系。
在本实施例中,可以存储待执行方法的标识信息与该待执行方法的执行信息之间的对应关系,以便于后续根据待执行方法的标识信息查找待执行方法的执行信息。作为示例,可以向预先指定的服务器上传待执行方法的标识信息与该待执行方法的执行信息之间的对应关系以存储。
本实施例中未详细说明的内容可参考图2对应实施例中的相关说明,在此不再赘述。
现有技术中,通常需要借助一些工具来记录方法的执行信息(如方法的性能信息等),因此需要额外编写与这些工具对接的代码。针对这种情况,本公开提供的方法利用方法注解和注解参数指定需要记录的方法的执行信息和方法的标识,从而可以在方法执行时根据注解参数记录对应的执行信息并和方法的标识对应存储,实现方法的执行信息的自动记录,而无需借助第三方工具,提升信息记录的便捷性。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了用于记录信息的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例提供的用于记录信息的装置500包括获取单元501和记录单元502。其中,获取单元501响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,其中,注解参数用于描述待执行方法的记录用信息;记录单元502根据注解参数,确定针对待执行方法的记录内容以及记录。
在本实施例中,用于记录信息的装置500中:获取单元501和记录单元502的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201和步骤202的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,记录用信息包括待执行方法的日志信息;以及记录单元502进一步被配置成:根据注解参数,确定待执行方法的日志内容作为记录内容。
在本实施例的一些可选的实现方式中,注解参数包括用于指示待执行方法的各条日志记录的公共关键词的第一参数。
在本实施例的一些可选的实现方式中,记录单元502进一步被配置成:获取第一参数的参数值作为公共关键词;按照预设的日志格式,在待执行方法的日志文件中记录所获取的参数值,其中,日志格式用于指示公共关键词在日志文件包括的日志记录中的位置。
在本实施例的一些可选的实现方式中,注解参数包括用于指示是否记录待执行方法的参数的第二参数,其中,待执行方法的参数包括出参和/或入参;以及记录单元502进一步被配置成:响应于确定第二参数指示记录待执行方法的参数,采集待执行方法的参数以及记录。
在本实施例的一些可选的实现方式中,注解参数包括用于指示是否记录待执行方法的执行信息的第三参数;以及记录单元502进一步被配置成:响应于确定第三参数指示记录待执行方法的执行信息,且响应于检测到待执行方法开始执行,采集待执行方法的执行信息,以及获取待执行方法的标识信息;记录标识信息与执行信息之间的对应关系。
在本实施例的一些可选的实现方式中,注解参数包括用于指示待执行方法的标识信息的第四参数;以及获取单元501进一步被配置成:响应于确定第四参数不为空,获取第四参数的参数值作为待执行方法的标识信息;响应于确定第四参数为空,利用反射技术获取待执行方法针对预设属性的属性值,以及根据属性值,生成待执行方法的标识信息。
在本实施例的一些可选的实现方式中,注解参数包括用于指示待捕获的异常的第五参数;以及记录单元502进一步被配置成:响应于在待执行方法的执行过程中检测到异常,确定检测到的异常是否属于第五参数指示的异常;响应于确定检测到的异常属于第五参数指示的异常,输出告警信号。
本公开的上述实施例提供的装置,通过获取单元响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,其中,注解参数用于描述待执行方法的记录用信息;记录单元根据注解参数,确定针对待执行方法的记录内容以及记录,从而在检测到方法具有指定注解时,直接读取注解参数以获取对应的记录用信息并记录,有助于提升信息记录效率。
下面参考图6,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的终端设备)600的结构示意图。本公开的实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的终端设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数,其中,注解参数用于描述待执行方法的记录用信息;根据注解参数,确定针对待执行方法的记录内容以及记录。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元和记录单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“响应于检测到待执行方法具有预设注解,获取待执行方法具有的预设注解的注解参数的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (9)
1.一种用于记录信息的方法,包括:
响应于检测到待执行方法具有预设注解,获取所述待执行方法具有的预设注解的注解参数,其中,所述注解参数用于描述所述待执行方法的记录用信息,所述记录用信息包括所述待执行方法的日志信息,所述注解参数包括用于指示是否记录所述待执行方法的执行信息的第三参数和用于指示所述待执行方法的标识信息的第四参数;
根据所述注解参数,确定针对所述待执行方法的记录内容以及记录;
其中,所述根据所述注解参数,确定针对所述待执行方法的记录内容以及记录,包括:响应于确定所述第三参数指示记录所述待执行方法的执行信息,且响应于检测到所述待执行方法开始执行,采集所述待执行方法的执行信息,以及响应于确定所述第四参数不为空,获取所述第四参数的参数值作为所述待执行方法的标识信息;响应于确定所述第四参数为空,利用反射技术获取所述待执行方法针对预设属性的属性值,根据所述属性值,生成所述待执行方法的标识信息;记录所述标识信息与所述执行信息之间的对应关系。
2.根据权利要求1所述的方法,其中,
所述根据所述注解参数,确定针对所述待执行方法的记录内容以及记录,包括:
根据所述注解参数,确定所述待执行方法的日志内容。
3.根据权利要求2所述的方法,其中,所述注解参数包括用于指示所述待执行方法的各条日志记录的公共关键词的第一参数。
4.根据权利要求3所述的方法,其中,所述根据所述注解参数,确定针对所述待执行方法的记录内容以及记录,包括:
获取所述第一参数的参数值;
按照预设的日志格式,在所述待执行方法的日志文件中记录所获取的参数值,其中,所述日志格式用于指示所获取的参数值在所述日志文件中的记录位置。
5.根据权利要求1所述的方法,其中,所述注解参数包括用于指示是否记录所述待执行方法的参数的第二参数,其中,所述待执行方法的参数包括出参和/或入参;以及
所述根据所述注解参数,确定针对所述待执行方法的记录内容以及记录,包括:
响应于确定所述第二参数指示记录所述待执行方法的参数,采集所述待执行方法的参数以及记录。
6.根据权利要求1所述的方法,其中,所述注解参数包括用于指示待捕获的异常的第五参数;以及
所述根据所述注解参数,确定针对所述待执行方法的记录内容以及记录,包括:
响应于在所述待执行方法的执行过程中检测到异常,确定检测到的异常是否属于所述第五参数指示的异常;
响应于确定检测到的异常属于所述第五参数指示的异常,输出告警信号。
7.一种用于记录信息的装置,其中,所述装置包括:
获取单元,被配置成响应于检测到待执行方法具有预设注解,获取所述待执行方法具有的预设注解的注解参数,其中,所述注解参数用于描述所述待执行方法的记录用信息,所述记录用信息包括所述待执行方法的日志信息,所述注解参数包括用于指示是否记录所述待执行方法的执行信息的第三参数和用于指示所述待执行方法的标识信息的第四参数;
记录单元,被配置成根据所述注解参数,确定针对所述待执行方法的记录内容以及记录;
其中,所述记录单元,进一步被配置成:响应于确定所述第三参数指示记录所述待执行方法的执行信息,且响应于检测到所述待执行方法开始执行,采集所述待执行方法的执行信息,以及响应于确定所述第四参数不为空,获取所述第四参数的参数值作为所述待执行方法的标识信息;响应于确定所述第四参数为空,利用反射技术获取所述待执行方法针对预设属性的属性值,根据所述属性值,生成所述待执行方法的标识信息;记录所述标识信息与所述执行信息之间的对应关系。
8.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011469056.3A CN112579553B (zh) | 2020-12-15 | 2020-12-15 | 用于记录信息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011469056.3A CN112579553B (zh) | 2020-12-15 | 2020-12-15 | 用于记录信息的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579553A CN112579553A (zh) | 2021-03-30 |
CN112579553B true CN112579553B (zh) | 2024-05-17 |
Family
ID=75134966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011469056.3A Active CN112579553B (zh) | 2020-12-15 | 2020-12-15 | 用于记录信息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579553B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271331A (zh) * | 2018-08-20 | 2019-01-25 | 平安普惠企业管理有限公司 | 日志的生成方法、装置、计算机设备及存储介质 |
CN110134658A (zh) * | 2019-04-09 | 2019-08-16 | 平安科技(深圳)有限公司 | 日志监控方法、装置、计算机设备和存储介质 |
CN111708749A (zh) * | 2020-07-24 | 2020-09-25 | 深圳市富之富信息科技有限公司 | 操作日志记录方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8701005B2 (en) * | 2006-04-26 | 2014-04-15 | At&T Intellectual Property I, Lp | Methods, systems, and computer program products for managing video information |
CN103092742B (zh) * | 2011-10-31 | 2015-08-19 | 国际商业机器公司 | 程序日志记录优化方法和系统 |
US20140164900A1 (en) * | 2012-12-11 | 2014-06-12 | Microsoft Corporation | Appending content with annotation |
-
2020
- 2020-12-15 CN CN202011469056.3A patent/CN112579553B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271331A (zh) * | 2018-08-20 | 2019-01-25 | 平安普惠企业管理有限公司 | 日志的生成方法、装置、计算机设备及存储介质 |
CN110134658A (zh) * | 2019-04-09 | 2019-08-16 | 平安科技(深圳)有限公司 | 日志监控方法、装置、计算机设备和存储介质 |
CN111708749A (zh) * | 2020-07-24 | 2020-09-25 | 深圳市富之富信息科技有限公司 | 操作日志记录方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112579553A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897691B (zh) | 基于接口模拟服务的数据处理方法、装置、服务器和介质 | |
CN113987074A (zh) | 分布式服务全链路监控方法、装置、电子设备及存储介质 | |
CN111414743B (zh) | 一种文档模板的调用方法、装置、电子设备及存储介质 | |
CN111813685B (zh) | 自动化测试方法和装置 | |
CN111476015B (zh) | 一种文档处理方法、装置、电子设备及存储介质 | |
CN109492210A (zh) | 一种在线文档内容展示方法、装置、存储介质及电子设备 | |
CN110196790A (zh) | 异常监控的方法和装置 | |
CN110704102A (zh) | 页面跳转协议接口文档生成方法、系统、介质和电子设备 | |
CN114297028A (zh) | 一种微服务日志链路追踪方法与系统 | |
US20240004917A1 (en) | Data processing method and device, terminal, and storage medium | |
CN110889263A (zh) | 文档的待办事项生成方法、装置、设备及存储介质 | |
CN111813465B (zh) | 一种信息获取方法、装置、介质和设备 | |
CN115022272B (zh) | 信息处理方法、装置、电子设备和存储介质 | |
CN111414331A (zh) | 在线协同知识库的文档导入方法、装置、存储介质及设备 | |
CN112084114B (zh) | 用于测试接口的方法和装置 | |
CN114371888A (zh) | 日志采集插件的热更新方法、装置、电子设备和可读介质 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
CN112860538B (zh) | 基于线上日志进行接口回归测试的方法和装置 | |
CN110489326B (zh) | 基于ids的httpapi调试方法装置、介质和设备 | |
CN112579553B (zh) | 用于记录信息的方法和装置 | |
CN111930385A (zh) | 数据采集方法、装置、设备及存储介质 | |
CN111400581A (zh) | 用于标注样本的系统、方法和装置 | |
CN115454956A (zh) | 日志生成方法、装置、电子设备及存储介质 | |
CN112732471B (zh) | 接口返回数据的纠错方法和纠错装置 | |
CN112817874A (zh) | 一种用户界面的测试方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |