CN118095212A - 获取变更日志的方法、装置、设备、存储介质及程序产品 - Google Patents
获取变更日志的方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN118095212A CN118095212A CN202410224423.5A CN202410224423A CN118095212A CN 118095212 A CN118095212 A CN 118095212A CN 202410224423 A CN202410224423 A CN 202410224423A CN 118095212 A CN118095212 A CN 118095212A
- Authority
- CN
- China
- Prior art keywords
- change
- field
- value
- type
- log
- 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
Links
- 230000008859 change Effects 0.000 title claims abstract description 275
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000015654 memory Effects 0.000 claims description 27
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 abstract description 28
- 238000012986 modification Methods 0.000 abstract description 28
- 230000008569 process Effects 0.000 abstract description 14
- 238000007792 addition Methods 0.000 abstract description 4
- 238000012217 deletion Methods 0.000 abstract description 4
- 230000037430 deletion Effects 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及计算机技术领域,具体涉及获取变更日志的方法、装置、设备、存储介质及程序产品,该方法包括:获取目标字段的注解信息,其中,目标字段为当前变更的对象;根据注解信息确定变更类型、变更前的值以及变更后的值;根据变更类型确定待输出的日志格式;将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。本公开可以自动获取到变更前后的对象,解决了用户在对比过程中需要逐个获取每个字段的繁琐对比,同时针对增加、删除、修改等变更类型日志格式,可以定制不同的输出日志格式,满足用户在日志定制过程中的使用不同的字段组合成需要的日志的需求。
Description
技术领域
本公开涉及计算机技术领域,具体涉及获取变更日志的方法、装置、设备、存储介质及程序产品。
背景技术
在某些业务场景下,需要对字段的变更做日志记录,比如昵称的修改,位置的修改等。如果是某些场景下需要对大量的字段进行修改的时候,挨个对每个字段的值进行判断,过程很繁琐;同时在对比过程中,由于字段名称和日志显示结果存在一定的差异,比如“phone”在日志中记录需要显示为“电话号码”,这时在对字段进行修改后,还需要工作人员找到字段名称与日志记录之间的映射关系,再对日志记录进行修改,耗费大量人力资源;另外,由于业务需求,需要每次对字段的变更做日志记录,而日志记录时因业务线的相同或相似就会存在较多代码冗余情况,由于当前日志记录时不能实现代码复用,所以每次都需要定制化地对比,存在浪费较多的内存资源的情况。
为了解决上述问题,相关技术提出一种反射机制来获取变更的字段以及对应的值,但是反射机制不允许对日志记录做变更,导致无法满足用户的对输出的日志格式的自定义需求,日志格式多样性较差。
发明内容
有鉴于此,本公开提供了一种获取变更日志的方法、装置、设备、存储介质及程序产品,以解决无法满足用户的对输出的日志格式的自定义需求,日志格式多样性较差的问题。
第一方面,本公开提供了一种获取变更日志的方法,该方法包括:
获取目标字段的注解信息,其中,目标字段为当前变更的对象;
根据注解信息确定变更类型、变更前的值以及变更后的值;
根据变更类型确定待输出的日志格式;
将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。
在本公开实施例中,通过获取目标字段的注解信息;根据注解信息确定变更类型、变更前的值以及变更后的值;根据变更类型确定待输出的日志格式;将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。这样本公开实施例可以自动获取到变更前后的对象,解决了用户在对比过程中需要逐个获取每个字段的繁琐对比,同时针对增加、删除、修改等变更类型自定义日志格式,可以定制不同的输出日志格式,满足用户在日志定制过程中的使用不同的字段组合成需要的日志的需求,进而解决了相关技术日志格式多样性较差,无法满足用户对日志格式的自定义需求的问题。
在一些可选的实施方式中,获取目标字段的注解信息,包括:
根据反射机制获取目标字段的字段名称以及字段名称上包含的注解标识;
对注解标识进行解析,得到注解信息。
在本公开实施例中,通过注解里面使用变量名称,以达到用户随意指定目标字段里面的字段名称的目的。
在一种可选的实施方式中,根据注解信息确定变更类型、变更前的值以及变更后的值,包括:
根据注解信息获取目标字段的字段类型;
根据字段类型确定变更类型、变更前的值以及变更后的值。
在一种可选的实施方式中,根据字段类型确定变更类型、变更前的值以及变更后的值,包括:
在字段类型为第一类型且获取到关键字信息的情况下,根据关键字信息确定变更类型和变更前后的状态信息;
根据变更前后的状态信息确定变更前的值、变更后的值。
在本公开实施例中,通过注解信息获取第一类型的关键字信息,这时仅通过对比关键字信息,即可得到变更前的值、变更后的值,无需全部值对比,减少对比复杂流程。
在一种可选的实施方式中,根据字段类型确定变更类型、变更前的值以及变更后的值,包括:
在字段类型为第一类型且未获取到关键字信息的情况下,将第一类型对应的所有字段进行组合,得到组合后的关键字信息;
根据组合后的关键字信息确定变更类型和变更前后的状态信息;
根据变更前后的状态信息确定变更前的值、变更后的值。
在本公开实施例中,将第一类型中的所有字段进行组合,然后对比组合后的关键字信息的前后变化情况,即可得到变更前的值、变更后的值,解决了用户在对比过程中需要逐个获取每个字段对比的繁琐性。
在一种可选的实施方式中,根据字段类型确定变更类型、变更前的值以及变更后的值,包括:
在字段类型为第二类型的情况下,获取目标字段变更前后状态信息;
根据状态信息确定变更类型以及变更前的值、变更后的值。
在一种可选的实施方式中,在一些可选的实施方式中,将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志,包括:
获取目标字段对应的字段名称;
判定字段名称是否为预设定义名称;
若字段名称是预设定义名称情况下,将变更前的值、变更后的值输入日志格式,并结合预设定义名称,生成目标日志;
若字段名称不是预设定义名称情况下,将变更前的值、变更后的值输入日志格式,并结合字段名称,生成目标日志。
在本公开实施例中,根据目标字段的字段名称与预设定义名称的比较情况,进而确定生成目标日志的具体格式,得到定制的日志输出格式。
在一些可选的实施方式中,在根据注解信息获取目标字段的字段类型之前,方法还包括:
判定注解信息内是否包含预设字段,其中,预设字段用于表征目标字段的变更前后状态信息可忽略;
在注解信息内未包含预设字段的情况下,获取目标字段的字段类型;
在注解信息内包含预设字段的情况下,跳过目标字段,获取下一字段的注解信息。
第二方面,本公开提供了一种获取变更日志的装置,该装置包括:
获取模块,用于获取目标字段的注解信息,其中,目标字段为当前变更的对象;
第一确定模块,用于根据注解信息确定变更类型、变更前的值以及变更后的值;
第二确定模块,用于根据变更类型确定待输出的日志格式;
生成模块,用于将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。
第三方面,本公开提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的获取变更日志的方法。
第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的获取变更日志的方法。
第五方面,本公开提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的获取变更日志的方法。附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开一些实施例的获取变更日志的方法的流程示意图;
图2是根据本公开一些实施例的获取变更日志的方法的整体流程示意图;
图3是根据本公开一些实施例的获取变更日志的架构图;
图4是根据本公开一些实施例的取变更日志的装置的结构框图;
图5是本公开实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
在一些业务场景下,若对某些字段的变更做日志记录,需要获取每个修改之前的值和修改之后的值,然后进行比较,过程很繁琐;在对比过程中,由于字段名称和日志显示结果存在一定的差异,需要耗费大量人力资源去做结果映射;同时由于当前日志记录时不能实现代码复用,所以每次都需要定制化地对比,存在浪费较多的内存资源的情况。相关技术提出一种反射机制来获取变更的字段以及对应的值来解决上述问题,但是由于反射机制不允许对日志记录做变更,导致日志格式多样性较差,无法满足用户对日志格式的自定义需求。
为了解决反射机制的问题,根据本公开实施例,提供了一种获取变更日志的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种获取变更日志的方法,图1是根据本公开实施例的获取变更日志的方法的流程图,如图1所示,该方法可以应用于服务器侧,该方法流程包括如下步骤:
步骤S101,获取目标字段的注解信息,其中,目标字段为当前变更的对象。
可选地,在本公开实施例中,服务器可以先获取到当前变更的目标字段的注解信息。该注解信息由两部分构成,包含定义注解和解析注解。在定义注解时,可以通过一些具体含义的字符(其包含了注解属性)来表示特定的含义。
如表1所示,表1表示定义注解:
表1
在得到表1中的定义注解后,就可确定后续执行逻辑。
步骤S102,根据注解信息确定变更类型、变更前的值以及变更后的值。
可选地,由于注解信息包括两部分内容:定义注解和解析注解,所以确定了定义注解之后,再对定义注解进行解析,可以获取目标字段处于变更前后的对比结果,确定出变更类型,比如删除了日志中的某条记录、更改了日志中的某条记录或者添加了日志中的某条记录。同时可以得到变更前的值和变更后的值,比如目标字段是年龄时,更改了日志中的记录,由1更改为了2,“1”就是变更前的值,“2”就是变更后的值。
步骤S103,根据变更类型确定待输出的日志格式。
可选地,由于定义注解时包含字符:listItemAddLogFormat、listItemDeleteLogFormat、listItemModifyLogFormat,这些字符分别代表了如果添加某条记录对应的日志格式、如果删除某条记录对应的日志格式、如果修改某条记录对应的日志格式,所以在确定了变更类型后可以直接得到对应的日志格式。
步骤S104,将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。
可选地,在得到变更前的值和变更后的值之后,可以直接将其代入日志格式内,替换原日志内的变量,同时结合目标字段(其定义了当前变更的对象),即可生成一个新的变更后的目标日志。
比如目标字段为“第一项目名称”,修改之前的第一项目名称为"项目名称1",修改之后的第一项目名称为"项目名称2"。更改事项的日志格式为:“项目【xxx】名称由『yyyy』修改为『zzzz』”。这时输出目标日志:项目【第一个项目名称】名称由『项目名称1』修改为『项目名称2』。
在本公开实施例中,通过获取目标字段的注解信息;根据注解信息确定变更类型、变更前的值以及变更后的值;根据变更类型确定待输出的日志格式;将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。这样本公开实施例可以自动获取到变更前后的对象,解决了用户在对比过程中需要逐个获取每个字段的繁琐对比,同时针对增加、删除、修改等变更类型日志格式,可以定制不同的输出日志格式,满足用户在日志定制过程中的使用不同的字段组合成需要的日志的需求,进而解决了相关技术日志格式多样性较差,无法满足用户对日志格式的自定义需求的问题。
在一些可选的实施方式中,获取目标字段的注解信息,包括:
根据反射机制获取目标字段的字段名称以及字段名称上包含的注解标识;
对注解标识进行解析,得到注解信息。
可选地,本公开实施例可以通过利用反射机制获取到目标字段的字段名称,比如变量“年龄”或者“nianling”即为目标字段的字段名称,若该目标字段发生了变更,则在该字段名称上通常设有注解标识,如果服务器可以得到该注解标识,就可以确定该字段名称对应的数值存在变更的情况,然后对该注解标识进行解析,即可得到对应的注解信息。
在本公开实施例中,通过注解里面使用变量名称,以达到用户随意指定目标字段里面的字段名称的目的。
在一些可选的实施方式中,根据注解信息确定变更类型、变更前的值以及变更后的值,包括:
根据注解信息获取目标字段的字段类型;
根据字段类型确定变更类型、变更前的值以及变更后的值。
可选地,在利用反射机制得到目标字段的字段名称之后,还可以根据字段名称得到注解信息,然后根据该注解信息得到目标字段的字段类型,其中,字段类型包括字符串、数字、列表、字典等。
然后根据该字段类型可以确定对应的变更类型、变更前的值、变更后的值。需要说明的是,在本公开实施例中,根据不同的字段类型会对应有不同的目标日志生成方式。
在一些可选的实施方式中,根据字段类型确定变更类型、变更前的值以及变更后的值,包括:
在字段类型为第一类型且获取到关键字信息的情况下,根据关键字信息确定变更类型和变更前后的状态信息;
根据变更前后的状态信息确定变更前的值、变更后的值。
可选地,本公开实施例可以设定目标字段在进行变更前后比较时的关键字信息。在字段类型为第一类型(如列表类型)且获取到对比的关键字信息时,如果发生变更的变更类型是增加或删除,则该关键字信息可以是列的序号或行的序号,通过比较列的序号或行的序号即可确定变更前后的状态信息,因为不管是删除事项还是新增事项,对于列表类型来说,序号一定会发生变化。如果发生变更的变更类型是修改,则该关键字信息可以是能够唯一表征目标字段的字符,比如ID号,同时该ID号是存在于列表内的,通过关键字信息找到需要进行比较的对象,然后确定变更前后的状态信息。
然后根据变更前后的状态信息得到变更前的值、变更后的值。
在本公开实施例中,通过注解信息获取第一类型的关键字信息,这时仅通过对比关键字信息,即可得到变更前的值、变更后的值,无需全部值对比,减少对比复杂流程。
在一些可选的实施方式中,根据字段类型确定变更类型、变更前的值以及变更后的值,包括:
在字段类型为第一类型且未获取到关键字信息的情况下,将第一类型对应的所有字段进行组合,得到组合后的关键字信息;
根据组合后的关键字信息确定变更类型和变更前后的状态信息;
根据变更前后的状态信息确定变更前的值、变更后的值。
可选地,本公开实施例中,在字段类型为第一类型(如列表类型)且未获取到对比的关键字信息时,这时将列表中每一项的字段进行组合,得到组合后的关键字信息,即生成了一个长的字符串,然后根据该组合后的关键字信息,获取变更前后的状态信息,同时得到变更类型(删除或新增或修改)。
然后根据变更前后的状态信息得到变更前的值、变更后的值。
在本公开实施例中,将第一类型中的所有字段进行组合,然后对比组合后的关键字信息的前后变化情况,即可得到变更前的值、变更后的值,解决了用户在对比过程中需要逐个获取每个字段对比的繁琐性。
在一些可选的实施方式中,根据字段类型确定变更类型、变更前的值以及变更后的值,包括:
在字段类型为第二类型的情况下,获取目标字段变更前后状态信息;
根据状态信息确定变更类型以及变更前的值、变更后的值。
可选地,在字段类型是第二类型(如某一具体对象)时,这时只需要获取到目标字段变更前后状态信息,查看该目标字段变更前后状态信息即可得到变更类型(删除或新增或修改)以及获取对比前后两个字段的值,得到变更前的值、变更后的值。
在一些可选的实施方式中,将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志,包括:
获取目标字段对应的字段名称;
判定字段名称是否为预设定义名称;
若字段名称是预设定义名称情况下,将变更前的值、变更后的值输入日志格式,并结合预设定义名称,生成目标日志;
若字段名称不是预设定义名称情况下,将变更前的值、变更后的值输入日志格式,并结合字段名称,生成目标日志。
可选地,在字段类型为第二类型时,在生成最后的目标日志之前,需要判定目标字段对应的字段名称是否与预设定义名称一致。可以理解的是,该预设定义名称为该目标字段的已有定义昵称,比如该目标字段的已有定义昵称为nianling。
若当前获取到的目标字段的字段名称与预设定义名称一致,则获取变更前的值、变更后的值,将变更前的值、变更后的值输入日志格式的同时,使用预设定义名称替换日志格式中字段名称,进而得到最终的目标日志。
若当前获取到的目标字段的字段名称与预设定义名称不一致,比如字段名称为“年龄”,预设定义名称为“nianling”,则获取变更前的值、变更后的值,将变更前的值、变更后的值输入日志格式的同时,使用字段名称替换日志格式中字段名称,进而得到最终的目标日志。
在本公开实施例中,根据目标字段的字段名称与预设定义名称的比较情况,进而确定生成目标日志的具体格式,得到定制的日志输出格式。
在一些可选的实施方式中,在根据注解信息获取目标字段的字段类型之前,方法还包括:
判定注解信息内是否包含预设字段,其中,预设字段用于表征目标字段的变更前后状态信息可忽略;
在注解信息内未包含预设字段的情况下,获取目标字段的字段类型;
在注解信息内包含预设字段的情况下,跳过目标字段,获取下一字段的注解信息。
可选地,在本公开实施例中,在获取目标字段的字段类型之前,需要先判定该目标字段的注解信息内是否包含预设字段,比如ignore这种表征目标字段的变更前后状态信息可忽略的信息,如果注解信息内未包含该预设字段,则直接获取到目标字段的字段类型;如果解信息内包含预设字段的情况下,跳过目标字段,获取下一字段的注解信息,再执行与目标字段相同的逻辑操作。
在一些可选的实施方式中,如图2所示,图2是根据本公开一些实施例的获取变更日志的方法的整体流程示意图,包括如下步骤:
利用反射机制获取到目标字段的字段类型、字段名称、注解信息;
遍历获取的注解信息;
判断注解信息内是否包含ignore字段;
若包含,则跳过该目标字段,进入下一字段对比;若不包含,则进行字段类型的判断;
判断该字段类型是否为第一类型(即列表);
若是第一类型,则获取用户自定义的:关键字信息、删除某项的日志格式、新增某项的日志格式、修改某项的日志格式;
判断是否能够获取到关键字信息;
若存在,则获取关键字信息,根据该关键字信息判断变更前后的状态;若不存在,则第一类型对应的所有字段进行组合,得到组合后的关键字信息,根据该组合后的关键字信息判断变更前后的状态;
获取变更前的值、变更后的值;
解析(删除、新增、修改)日志格式中的变量;
利用变更前的值、变更后的值替换日志格式中的变量,得到目标日志;
若不是第一类型,则对比目标字段这一具体对象的变更前后状态信息;
判断是否存在变更;
若存在变更,则获取目标字段对应的字段名称,判断字段名称是否为预设定义名称;若是,则使用预设定义名称替换日志格式中名称;若不是,则使用字段名称替换日志格式中名称;
获取变更前的值、变更后的值;
利用变更前的值、变更后的值替换日志格式中的变量,得到目标日志。
由上述各实施例可以得到如图3所示的架构图,图3中共包含3个模块:接入模块、解析模块以及对比模块。
在接入模块中包含对比日志工具包单元,对比日志工具包单元内包含SDK接入调用子单元和接收最终目标日志子单元。
在解析模块包含注解解析单元和目标字段解析单元。在注解解析单元中包含是否包含忽略字段对比子单元、字段名称注解子单元、列表内关键字信息的获取子单元、删除某项的日志格式子单元、新增某项的日志格式子单元、修改某项的日志格式子单元。在目标字段解析单元中包含字段类型获取子单元、字段值获取子单元、字段名称获取子单元、注解标识解析子单元。
在对比模块中包含目标字段对比单元、忽略字段对比单元以及列表对比单元。目标字段对比单元中包含根据字段昵称或者字段名称格式化日志格式中的字段名称子单元、获取变更前后的值格式化日志格式子单元。忽略字段对比单元包含忽略字段对应的目标字段的处理子单元。列表对比单元包含格式化删除项的日志子单元、格式化修改项的日志子单元、格式化新增项的日志子单元。
基于上述各实施例,可以得到以下执行说明:
1、若修改之前的对象里面的列表第二项有"solid4",修改之后没有了。设置输出日志格式为:listItemDeleteLogFormat="删除固化人员【${name}】固化周期:${solidStartTime}至${solidEndTime}",这时输出最终的目标日志:删除固化人员【solid4】固化周期:20xx-yy-zz至20xx-mm-nn。
2、修改之前的对象里面的列表没有"solid2",修改之后添加了"solid2"。设置输出日志格式为:listItemAddLogFormat="添加固化人员【${name}】固化周期:${solidStartTime}至${solidEndTime}",这时输出最终的目标日志:添加固化人员【solid2】固化周期:20xx-yy-zz至20xx-mm-nn。
3、修改之前和修改之后的对象里面的列表都存在"solid1",但是周期发生变更。设置输出日志格式为:listItemModifyLogFormat="固化人员【${before.name}】固化周期变更:${before.solidStartTime}至${before.solidEndTime}变更为${after.solidStartTime}至${after.solidEndTime}",这时输出最终的目标日志:固化人员【solid1】固化周期变更:20xx-yy-zz至20xx-mm-nn变更为20xx-pp-qq至20xx-mm-nn。
4、修改之前对象的项目名称叫"项目名称1",修改之后叫"项目名称2"。设置输出日志格式为:CompareFieldAnnotation(name="第一个项目名称",logFormat="项目【%s】名称由『%s』修改为『%s』"),这时输出最终的目标日志:项目【第一个项目名称】名称由『项目名称1』修改为『项目名称2』。
在本实施例中还提供了一种获取变更日志的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种获取变更日志的装置,如图4所示,该装置包括:
获取模块401,用于获取目标字段的注解信息,其中,目标字段为当前变更的对象;
第一确定模块402,用于根据注解信息确定变更类型、变更前的值以及变更后的值;
第二确定模块403,用于根据变更类型确定待输出的日志格式;
生成模块404,用于将变更前的值、变更后的值输入日志格式内,并结合目标字段,生成变更后的目标日志。
在一些可选的实施方式中,获取模块401包括:
第一获取子模块,用于根据反射机制获取目标字段的字段名称以及字段名称上包含的注解标识;
解析子模块,用于对注解标识进行解析,得到注解信息。
在一些可选的实施方式中,第一确定模块402包括:
第二获取子模块,用于根据注解信息获取目标字段的字段类型;
确定子模块,用于根据字段类型确定变更类型、变更前的值以及变更后的值。
在一些可选的实施方式中,确定子模块包括:
获取单元,用于根据注解信息获取目标字段的字段类型;
确定单元,用于根据字段类型确定变更类型、变更前的值以及变更后的值。
在一些可选的实施方式中,确定单元包括:
第一确定子单元,用于在字段类型为第一类型且获取到关键字信息的情况下,根据关键字信息确定变更类型和变更前后的状态信息;
第二确定子单元,用于根据变更前后的状态信息确定变更前的值、变更后的值。
在一些可选的实施方式中,确定单元包括:
组合子单元,用于在字段类型为第一类型且未获取到关键字信息的情况下,将第一类型对应的所有字段进行组合,得到组合后的关键字信息;
第三确定子单元,用于根据组合后的关键字信息确定变更类型和变更前后的状态信息;
第四确定子单元,用于根据变更前后的状态信息确定变更前的值、变更后的值。
在一些可选的实施方式中,确定单元包括:
获取子单元,用于在字段类型为第二类型的情况下,获取目标字段变更前后状态信息;
第五确定子单元,用于根据目标字段变更前后状态信息确定变更类型以及变更前的值、变更后的值。
在一些可选的实施方式中,生成模块404包括:
第三获取子模块,用于获取目标字段对应的字段名称;
第一判定子模块,用于判定字段名称是否为预设定义名称;
第一生成子模块,用于若字段名称是预设定义名称情况下,将变更前的值、变更后的值输入日志格式,并结合预设定义名称,生成目标日志;
第二生成子模块,用于若字段名称不是预设定义名称情况下,将变更前的值、变更后的值输入日志格式,并结合字段名称,生成目标日志。
在一些可选的实施方式中,该装置还包括:
第二判定子模块,用于在根据注解信息获取目标字段的字段类型之前,判定注解信息内是否包含预设字段,其中,预设字段用于表征目标字段的变更前后状态信息可忽略;
第四获取子模块,用于在注解信息内未包含预设字段的情况下,获取目标字段的字段类型;
第五获取子模块,用于在注解信息内包含预设字段的情况下,跳过目标字段,获取下一字段的注解信息。
本实施例中的获取变更日志的装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本公开实施例还提供一种计算机设备,具有上述图4所示的获取变更日志的装置。
请参阅图5,图5是本公开可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本公开实施例还提供了一种计算机可读存储介质,上述根据本公开实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
本公开的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本公开的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (12)
1.一种获取变更日志的方法,其特征在于,所述方法包括:
获取目标字段的注解信息,其中,所述目标字段为当前变更的对象;
根据所述注解信息确定变更类型、变更前的值以及变更后的值;
根据所述变更类型确定待输出的日志格式;
将所述变更前的值、所述变更后的值输入所述日志格式内,并结合所述目标字段,生成变更后的目标日志。
2.根据权利要求1所述的方法,其特征在于,所述获取目标字段的注解信息,包括:
根据反射机制获取所述目标字段的字段名称以及所述字段名称上包含的注解标识;
对所述注解标识进行解析,得到所述注解信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述注解信息确定变更类型、变更前的值以及变更后的值,包括:
根据所述注解信息获取所述目标字段的字段类型;
根据所述字段类型确定所述变更类型、所述变更前的值以及所述变更后的值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述字段类型确定所述变更类型、所述变更前的值以及所述变更后的值,包括:
在所述字段类型为第一类型且获取到关键字信息的情况下,根据所述关键字信息确定所述变更类型和变更前后的状态信息;
根据所述变更前后的状态信息确定所述变更前的值、所述变更后的值。
5.根据权利要求3所述的方法,其特征在于,所述根据所述字段类型确定所述变更类型、所述变更前的值以及所述变更后的值,包括:
在所述字段类型为第一类型且未获取到关键字信息的情况下,将所述第一类型对应的所有字段进行组合,得到组合后的关键字信息;
根据所述组合后的关键字信息确定所述变更类型和变更前后的状态信息;
根据所述变更前后的状态信息确定所述变更前的值、所述变更后的值。
6.根据权利要求3所述的方法,其特征在于,所述根据所述字段类型确定所述变更类型、所述变更前的值以及所述变更后的值,包括:
在所述字段类型为第二类型的情况下,获取所述目标字段变更前后状态信息;
根据所述目标字段变更前后状态信息确定所述变更类型以及所述变更前的值、所述变更后的值。
7.根据权利要求6所述的方法,其特征在于,将所述变更前的值、所述变更后的值输入所述日志格式内,并结合所述目标字段,生成变更后的目标日志,包括:
获取所述目标字段对应的所述字段名称;
判定所述字段名称是否为预设定义名称;
若所述字段名称是预设定义名称情况下,将所述变更前的值、所述变更后的值输入所述日志格式,并结合所述预设定义名称,生成所述目标日志;
若所述字段名称不是预设定义名称情况下,将所述变更前的值、所述变更后的值输入所述日志格式,并结合所述字段名称,生成所述目标日志。
8.根据权利要求3所述的方法,其特征在于,在所述根据所述注解信息获取所述目标字段的字段类型之前,所述方法还包括:
判定所述注解信息内是否包含预设字段,其中,所述预设字段用于表征所述目标字段的变更前后状态信息可忽略;
在所述注解信息内未包含所述预设字段的情况下,获取所述目标字段的字段类型;
在所述注解信息内包含所述预设字段的情况下,跳过所述目标字段,获取下一字段的注解信息。
9.一种获取变更日志的装置,其特征在于,所述装置包括:
获取模块,用于获取目标字段的注解信息,其中,所述目标字段为当前变更的对象;
第一确定模块,用于根据所述注解信息确定变更类型、变更前的值以及变更后的值;
第二确定模块,用于根据所述变更类型确定待输出的日志格式;
生成模块,用于将所述变更前的值、所述变更后的值输入所述日志格式内,并结合所述目标字段,生成变更后的目标日志。
10.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至8中任一项所述的获取变更日志的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的获取变更日志的方法。
12.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的获取变更日志的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410224423.5A CN118095212A (zh) | 2024-02-28 | 2024-02-28 | 获取变更日志的方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410224423.5A CN118095212A (zh) | 2024-02-28 | 2024-02-28 | 获取变更日志的方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118095212A true CN118095212A (zh) | 2024-05-28 |
Family
ID=91157346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410224423.5A Pending CN118095212A (zh) | 2024-02-28 | 2024-02-28 | 获取变更日志的方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118095212A (zh) |
-
2024
- 2024-02-28 CN CN202410224423.5A patent/CN118095212A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765023B (zh) | 测试用例生成方法、装置 | |
CN107797823B (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
CN110941779A (zh) | 加载页面的方法、装置、存储介质及电子设备 | |
CN115617780A (zh) | 数据导入方法、装置、设备及存储介质 | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN111143434A (zh) | 数据智能核对方法、装置、设备及存储介质 | |
CN108959508B (zh) | Sql数据生成方法及装置 | |
CN108595656B (zh) | 一种数据的处理方法及系统 | |
CN112148545B (zh) | 嵌入式系统的安全基线检测方法以及安全基线检测系统 | |
CN111026669A (zh) | 测试日志管理方法、测试日志管理装置及存储介质 | |
CN116737693A (zh) | 数据迁移方法及装置、电子设备和计算机可读存储介质 | |
CN112287266A (zh) | 一种网页配置的处理方法及其装置、设备及存储介质 | |
CN118095212A (zh) | 获取变更日志的方法、装置、设备、存储介质及程序产品 | |
CN113190236B (zh) | Hql脚本校验方法及装置 | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
CN114356330A (zh) | 页面配置方法、装置、电子设备和存储介质 | |
CN110515905B (zh) | 一种路由的配置的方法、装置以及服务器 | |
CN114371866A (zh) | 业务系统的版本重构测试方法、装置和设备 | |
CN114328572A (zh) | 基于sql解析器的数据查询方法、装置、系统及介质 | |
CN111752590A (zh) | 运维管理方法和系统 | |
CN112417324A (zh) | 基于Chrome的URL拦截方法、装置及计算机设备 | |
CN111026466A (zh) | 文件处理方法、装置、计算机可读存储介质及电子设备 | |
CN113608817B (zh) | 弹框处理方法及系统 | |
CN117234512B (zh) | 业务快速开发方法、系统、电子设备及存储介质 | |
CN114143187B (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 |