CN113076296A - 日志生成方法、装置、电子设备及存储介质 - Google Patents
日志生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113076296A CN113076296A CN202110341150.9A CN202110341150A CN113076296A CN 113076296 A CN113076296 A CN 113076296A CN 202110341150 A CN202110341150 A CN 202110341150A CN 113076296 A CN113076296 A CN 113076296A
- Authority
- CN
- China
- Prior art keywords
- log
- target
- code line
- program
- executable file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 230000006399 behavior Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 abstract description 28
- 230000009286 beneficial effect Effects 0.000 abstract description 5
- 230000009467 reduction Effects 0.000 abstract description 5
- 238000002513 implantation Methods 0.000 description 25
- 238000004458 analytical method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 239000007943 implant Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000001959 radiotherapy Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
Abstract
本发明提供的一种日志生成方法、装置、电子设备及存储介质,获取与目标代码行对应的日志程序,作为目标日志程序,在动态变量表示目标代码行执行结果时,控制目标日志程序执行,以生成目标代码行对应的日志。目标日志程序通过动态变量生成日志,且与目标代码行所在的可执行文件独立运行,日志的生成不影响可执行文件的运行,避免了因生成日志带来的服务性能降低的问题。另一方面,开发人员可以对任一需要进行日志监控的代码行生成日志程序,实现对该代码行的日志监控,能够基于需求灵活调整需要进行监控的代码行,从而有利于提高定位故障的准确性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种日志生成方法、装置、电子设备及存储介质。
背景技术
随着线上业务的快速发展,研发人员必须对线上故障进行排查、定位及解决。因此,研发人员会在服务的关键位置进行日志输出,用于控制日志输出的代码会提前写入运行程序中,随着运行程序运行。一方面,控制日志输出的代码提前写入运行程序,使得只能在运行程序的特定位置输出日志,当运行程序输出异常数据时,只能通过这些特定位置输出的日志进行故障分析。当故障位置与这些特定位置无关时,根本无法定位故障,不能及时解决运行程序出现的问题。另一方面,为了能够在运行程序无论出现什么故障都能实现精准定位,还可以在运行程序中植入大量的控制日志输出的代码。然而,由于植入的控制日志输出的代码会随着运行程序一起执行,因此会极大地影响运行程序的执行效率,降低服务性能,耗费大量CPU且会输出大量无效日志,甚至会导致磁盘IO(Input/Output,输入/输出)急剧升高,导致整个服务器暂时瘫痪。
由此可见,现有技术中对运行程序进行日志监控时,会影响运行程序的运行且不能根据需求确定进行监控的代码行。
发明内容
本发明提供一种日志生成方法、装置、电子设备及存储介质,用以解决现有技术中对运行程序进行日志监控时,会影响运行程序的运行且不能根据需求确定进行监控的代码行的问题,实现了日志的生成不影响可执行文件的运行,避免了因生成日志带来的服务性能降低的问题,另一方面实现对该代码行的日志监控,能够基于需求灵活调整需要进行监控的代码行,从而有利于提高定位故障的准确性。
本发明提供的一种日志生成方法,包括:
获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
根据本发明提供一种日志生成方法,在上述基础上,所述在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序,包括:
在所述目标代码行执行结束到再赋值代码行开始执行之间的任一时间点,运行所述目标日志程序;
其中,所述再赋值代码行为执行顺序在所述目标代码行之后的代码行中,首个对所述动态变量进行赋值的代码行。
根据本发明提供一种日志生成方法,在上述基础上,所述获取与目标代码行对应的日志程序,作为目标日志程序,包括:
获取预置的日志程序的日志配置信息;其中,所述日志配置信息用于定位通过所述日志程序生成日志的代码行;
根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序。
根据本发明提供一种日志生成方法,在上述基础上,所述根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序,包括:
获取目标可执行文件中的任一代码行,作为所述目标代码行,获取所述目标代码行在所述目标可执行文件中的代码位置信息;
若通过所述日志配置信息定位的代码行中,存在与所述代码位置信息相匹配的目标代码行,则将定位所述目标代码行的日志配置信息对应的日志程序,作为所述目标日志程序。
根据本发明提供一种日志生成方法,在上述基础上,所述日志配置信息包括如下至少一种:
代码行所在的可执行文件的文件标识、代码行在可执行文件中所属的方法体、代码行在可执行文件中所在行对应的行标识。
根据本发明提供一种日志生成方法,在上述基础上,在获取与目标代码行对应的日志程序,作为目标日志程序之前,还包括:
从业务的可执行文件中获取预先标记的目标可执行文件;其中,所述目标可执行文件中存在通过所述日志程序生成日志的代码行;
根据所述目标可执行文件获取所述目标代码行。
根据本发明提供一种日志生成方法,在上述基础上,在运行所述目标日志程序之前,还包括:
根据所述目标代码行所在的目标可执行文件,获取所述动态变量的存储信息,以在运行所述目标日志程序时,根据所述存储信息获取所述目标代码行执行结果。
本发明还提供一种日志生成装置,包括:
获取模块,用于获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
运行模块,用于在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述日志生成方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述日志生成方法的步骤。
本发明提供的一种日志生成方法、装置、电子设备及存储介质,获取与目标代码行对应的日志程序,作为目标日志程序,在动态变量表示目标代码行执行结果时,控制目标日志程序执行,以生成目标代码行对应的日志。目标日志程序通过动态变量生成日志,且与目标代码行所在的可执行文件独立运行,日志的生成不影响可执行文件的运行,避免了因生成日志带来的服务性能降低的问题。另一方面,开发人员可以对任一需要进行日志监控的代码行生成日志程序,实现对该代码行的日志监控,能够基于需求灵活调整需要进行监控的代码行,从而有利于提高定位故障的准确性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的日志生成方法的流程示意图;
图2是本发明实施例提供的日志生成的总体控制示意图;
图3是本发明另一实施例提供的日志生成装置的结构示意图;
图4是本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种日志生成方法的流程示意图。该日志生成方法可以由服务器执行,参见图1,该日志生成方法包括:
步骤101:获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志。
目标代码行为某一可执行文件中的某一行的代码。日志程序为开发人员编写的,用于生成与代码行对应的日志的程序。
步骤102:在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
动态变量为可执行文件中调用到的变量,会随着可执行文件的执行发生变化。例如,某一可执行文件用于进行计数,则会通过一个动态变量表示计数的结果,因此该动态变量会随着可执行文件的运行发生变化。
为了使得目标日志程序能够针对目标代码行生成日志,还需要控制目标日志程序的运行时间。具体可以在目标代码行对所述动态变量赋值结束到再赋值代码行对所述动态变量赋值之前执行该目标日志程序,以保证目标日志程序通过动态变量获取到目标代码行执行结果,进而生成目标代码行对应的日志。
具体来说,开发人员可以针对任一需要进行日志监控的代码行生成日志程序,然后在动态变量表示该代码行对应的执行结果时,控制该日志程序执行,从而生成该代码行对应的日志。
本发明提供的一种日志生成方法,获取与目标代码行对应的日志程序,作为目标日志程序,在动态变量表示目标代码行执行结果时,控制目标日志程序执行,以生成目标代码行对应的日志。目标日志程序通过动态变量生成日志,且与目标代码行所在的可执行文件独立运行,日志的生成不影响可执行文件的运行,避免了因生成日志带来的服务性能降低的问题。另一方面,开发人员可以对任一需要进行日志监控的代码行生成日志程序,实现对该代码行的日志监控,能够基于需求灵活调整需要进行监控的代码行,从而有利于提高定位故障的准确性。
该日志生成方法实际上可以通过应用在运行期实时制作工具技术(Run RealTool,简称:RT技术)实现。在业务系统的服务器中,RT技术采用间接方法实时的控制系统,同时不对系统中业务的运行造成影响。具体可以通过RT读取器、RT解析生成器和RT植入配置执行器实现。图2为本实施例提供的日志生成的总体控制示意图,参见图2,通过RT读取器获取目标可执行文件,通过RT解析生成器将开发人员配置的日志程序与代码行进行校验配对,确定目标代码行对应的目标日志程序。进而根据对目标可执行文件执行进度进行监控的行为监听器,RT植入配置执行器对目标日志程序的运行进行控制,实现对目标代码行的日志生成。
在上述实施例的基础上,所述在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序,包括:
在所述目标代码行执行结束到再赋值代码行开始执行之间的任一时间点,运行所述目标日志程序;
其中,所述再赋值代码行为执行顺序在所述目标代码行之后的代码行中,首个对所述动态变量进行赋值的代码行。
可以通过对目标代码行所在的可执行文件的执行进度进行监控,从而实现对目标日志程序的控制。具体地,可以检测到目标代码行执行结束后,即开始执行目标日志程序,也可以在检测到目标代码行和再赋值代码行之间的任一代码行执行时,开始执行目标日志程序。
其中,可以通过行为监听器对目标代码行所在的可执行文件进行执行进度的监控。
本实施例中,在目标代码行执行结束到再赋值代码行开始执行之间的任一时间点,控制目标日志程序执行,能够保证目标日志程序执行时动态变量表示的是目标代码行的执行结果,从而能够生成目标代码行对应的日志。
参见图2,控制目标日志程序运行的过程具体可以通过如下过程实现:
RT解析生成器经过校验配对确定目标代码行对应的目标日志程序后,一方面将目标日志程序及其对应的程序标识传输到RT植入配置执行器,另一方面将需要监控的代码行(该代码行可以是目标代码行执行结束后首个要执行的代码行,或者目标代码行与再赋值代码行之间的某一代码行)对应的行数和目标日志程序的程序标识传输到行为监听器。当行为监听器监听到需要监控的代码行时,会将该程序标识传输到RT植入配置执行器,RT植入配置执行器控制与该程序标识对应的日志程序运行,输出该目标代码行对应的日志。
可见,通过行为监听器可以实际解决日志程序在指定时间、指定的行数进行日志的输出、保证输出时动态变量的有效性。
进一步地,在上述各实施例的基础上,所述获取与目标代码行对应的日志程序,作为目标日志程序,包括:
获取预置的日志程序的日志配置信息;其中,所述日志配置信息用于定位通过所述日志程序生成日志的代码行;
根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序。
日志配置信息是开发人员在编写日志程序后,用于定位通过该日志程序生成日志的代码行的信息,通常日志配置信息包括代码行所在的可执行文件名称、所属的方法体、代码行在可执行文件中所在的行等等信息。
本实施例中,通过日志配置信息可以将日志程序与对应的代码行进行匹配,从而针对需要进行日志监控的代码行运行日志程序,生成日志,实现对代码行针对性的监控。
进一步地,在上述各实施例的基础上,所述根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序,包括:
获取目标可执行文件中的任一代码行,作为所述目标代码行,获取所述目标代码行在所述目标可执行文件中的代码位置信息;
若通过所述日志配置信息定位的代码行中,存在与所述代码位置信息相匹配的目标代码行,则将定位所述目标代码行的日志配置信息对应的日志程序,作为所述目标日志程序。
在实现日志程序和代码行的匹配过程中,可以逐行从目标可执行文件中获取代码行作为目标代码行,根据目标代码行在目标可执行文件中的位置,通过日志配置信息确定是否存在与目标代码行匹配的日志程序,若是,后续可以通过匹配的日志程序生成该目标代码行对应的日志,否则,继续获取下一代码行作为目标代码行,进行日志程序与代码行的匹配过程。
其中,可以对目标可执行文件生成隐形预植入文件,从而根据隐形预植入文件确定每一代码行对应的行数,得到代码行对应的代码位置信息。
本实施中,通过对目标可执行文件中代码行进行匹配,确定了生成的日志程序与代码行之间的对应关系,进而能够通过日志程序的运行生成相应代码行对应的日志。
进一步地,在上述各实施例的基础上,所述日志配置信息包括如下至少一种:
代码行所在的可执行文件的文件标识、代码行在可执行文件中所属的方法体、代码行在可执行文件中所在行对应的行标识。
为了使得开发人员编写的日志程序能够与代码行进行正确的匹配,日志配置信息中包括的内容应当能够准确定位代码行的位置。例如,日志配置信息中可以包括用于通过日志程序生成日志的代码行所在的执行文件的文件标识(例如,文件名称)、所属的方法体和行标识(例如,行数),通过这些信息的匹配准确定位日志程序与代码行的关系。
本实施例中,通过日志配置信息实现了日志程序与代码行的匹配,从而能够基于匹配的日志程序对代码行生成日志。
参见图2,关于目标代码行与目标日志程序的匹配过程可以具体包括如下内容:
开发人员可以针对需要进行监控的代码行生成日志程序,每一日志程序均配置了日志配置信息。另一方面,对目标可执行文件生成了隐形预置入文件,从而能够基于隐形预植入文件生成每一代码行的代码位置信息,具体可以通过预植入文件标准生成。然后RT解析生成器可以根据日志配置信息和代码位置信息进行校验配对,进而实现代码行与日志程序的匹配。
进一步地,在上述各实施例的基础上,在获取与目标代码行对应的日志程序,作为目标日志程序之前,还包括:
从业务的可执行文件中获取预先标记的目标可执行文件;其中,所述目标可执行文件中存在通过所述日志程序生成日志的代码行;
根据所述目标可执行文件获取所述目标代码行。
业务通常包含大量的可执行文件,但不是所有可执行文件均需要进行日志监控,因此为了能够快速获取需要进行日志监控的可执行文件,通过上述过程实现对可执行文件中代码行进行日志监控,可以对需要进行日志监控的可执行文件预先进行标记。例如,将包含@RTLog()配置的可执行文件作为目标可执行文件。
本实施例,从可执行文件中获取目标可执行文件,进而对目标可执行文件中的代码行与日志程序进行匹配,从而实现对需要进行日志监控的代码行进行日志监控。
进一步地,在上述各实施例的基础上,在运行所述目标日志程序之前,还包括:
根据所述目标代码行所在的目标可执行文件,获取所述动态变量的存储信息,以在运行所述目标日志程序时,根据所述存储信息获取所述目标代码行执行结果。
可以扫描目标可执行文件中的每一代码行中的动态变量,建立对动态变量进行引用的类-池,该类-池实际上提供了动态变量在内存中的存储信息,因此基于类-池可以从内存读取到动态变量当前的值。
本实施例中,通过预先获取的动态变量的存储信息,提供了日志程序运行时获取动态变量的途径,进而能够根据动态变量生成日志。
参见图2,日志生成的整个过程可以包括如下几个方面的内容:
1)关于类文件的扫描、分析和监听的准备过程,以及类-池生成过程:
RT读取器获类文件(类文件即可执行文件)中@RTLog()配置信息,例如:读取配置文件中@RTLog(“feedRunTimeLog”)名称,该名将作为日志植入文件标准名称;
获取该类文件所有动态变量名称、方法体名称;
对每行代码进行隐性预值入,提取预值入的索引编号;
开启对类文件的行为监听器;
对扫描的结果生成一个独立的类-池。
2)RT解析生成器获取日志植入置配中目录文件夹(即开发人员提供的日志程序的目录)中所有日志植入配置、获取所有预值入文件标准进行、校验、匹配等:
获取日志植入置配中所有xxx.rtl文件格式的文件,如果基本格式异常则跳过此文件,无需对此文件进行下一次处理,并标注该基本格式异常,提示开发人员进行更新调整。
将日志植入置配中的日志程序的名称(例如,名称为<!title>feed RunTimeLog<title>)与预植入文件标准的文件名称(即目标可执行文件的文件名称)进行标题文件逐一匹配,如果匹配成功则进行一对一绑定,如果无法匹配到相同标题视为无效。
当名称绑定成功后,还会进行<!method>方法体名称校验、用户输入的动态变量名称校验、植入到隐性预值入有效行数标识进行校验等等,只有若有校验均匹配成功,才将该日志程序与代码行进行绑定,如果存在任何匹配不成功,都将视为绑定无效。
3)RT植入配置执行器进行等待预执行准备
绑定成功后,RT解析生成器会通知行为监听器启动临听,并传送相关信息给行为监听器。如:类名,方法体、植入位,植入的预值编号。当监听器与预值编号触发时,则发送请求给RT植入配置执行器进行工作。
RT解析生成器会将解析结果发送给RT植入配置执行器,请求RT植入配置执行器预编译与待执行准备通知。
4)RT植入配置执行器运行过程
RT植入配置执行器收到监听器的通知时,将立刻执行对应的预值入编号程序,并找到对的类-池,获取类池中的相应数据信息。
类-池会输出当前动态变量的程序中的结果值,然后数据组装。
RT植入配置执行器接收执行结果、生成日志,植入日志输出结果。
可以看出,RT读取器、RT解析生成器和RT植入配置执行器在本实施例提供的方案中分别起到了如下作用:
RT读取器扫描可执行文件;针对可执行文件进行行数扫描,记录每行的行数(行数:定位查找标识)将每行数进行空预植入(简称:隐性空预植入);其次将原执行程序中的变量、方法、类进行扫描后生成对应的类池,供RT植入配置执行器到类池中查找当前动态值;同时生成预值入文件标准,用于校验日志植入配置。
RT解析生成器解析日志植入配置与预值入文件标准进行校验。校验的内容类、方法体、行数、动态输出的变量进行校验,将有效可执行内容发给RT植入配置执行器,同时通知开启监听器,并跟据行数定位具体监听位置。
RT植入配置执行器收到行为监听器通知时根据行为监听器传送的行数找到当需执行的预值入编号,预值入编号定位类池中当前变量的值,实现动态变量日志输入。
图3为本发明实施例提供的日志生成装置的结构示意图,参见图3,该日志生成装置包括获取模块301和运行模块302,其中:
获取模块301,用于获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
运行模块302,用于在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
本实施例提供的日志生成装置适用于上述各实施例提供的日志生成方法,在此不再赘述。
本发明提供的一种日志生成装置,获取与目标代码行对应的日志程序,作为目标日志程序,在动态变量表示目标代码行执行结果时,控制目标日志程序执行,以生成目标代码行对应的日志。目标日志程序通过动态变量生成日志,且与目标代码行所在的可执行文件独立运行,日志的生成不影响可执行文件的运行,避免了因生成日志带来的服务性能降低的问题。另一方面,开发人员可以对任一需要进行日志监控的代码行生成日志程序,实现对该代码行的日志监控,能够基于需求灵活调整需要进行监控的代码行,从而有利于提高定位故障的准确性。
根据本发明提供一种日志生成装置,在上述基础上,所述在所述动态变量表示所述目标代码行执行结果时,运行所述目标日志程序,包括:
在所述目标代码行执行结束到再赋值代码行开始执行之间的任一时间点,运行所述目标日志程序;
其中,所述再赋值代码行为执行顺序在所述目标代码行之后的代码行中,首个对所述动态变量进行赋值的代码行。
根据本发明提供一种日志生成装置,在上述基础上,所述获取与目标代码行对应的日志程序,作为目标日志程序,包括:
获取预置的日志程序的日志配置信息;其中,其中,所述日志配置信息用于定位通过所述日志程序生成日志的代码行;
根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序。
根据本发明提供一种日志生成装置,在上述基础上,所述根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序,包括:
获取目标可执行文件中的任一代码行,作为所述目标代码行,获取所述目标代码行在所述目标可执行文件中的代码位置信息;
若通过所述日志配置信息定位的代码行中,存在与所述代码位置信息相匹配的目标代码行,则将定位所述目标代码行的日志配置信息对应的日志程序,作为所述目标日志程序。
根据本发明提供一种日志生成装置,在上述基础上,所述日志配置信息包括如下至少一种:
代码行所在的可执行文件的文件标识、代码行在可执行文件中所属的方法体、代码行在可执行文件中所在行对应的行标识。
根据本发明提供一种日志生成装置,在上述基础上,在获取与目标代码行对应的日志程序,作为目标日志程序之前,还包括:
从业务的可执行文件中获取预先标记的目标可执行文件;其中,所述目标可执行文件中存在通过所述日志程序生成日志的代码行;
根据所述目标可执行文件获取所述目标代码行。
根据本发明提供一种日志生成装置,在上述基础上,在运行所述目标日志程序之前,还包括:
根据所述目标代码行所在的目标可执行文件,获取所述动态变量的存储信息,以在运行所述目标日志程序时,根据所述存储信息获取所述目标代码行执行结果。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行日志生成方法,该方法包括:
获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的日志生成方法,该方法包括:
获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的日志生成方法,该方法包括:
获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种日志生成方法,其特征在于,包括:
获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
2.根据权利要求1所述的日志生成方法,其特征在于,所述在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序,包括:
在所述目标代码行执行结束到再赋值代码行开始执行之间的任一时间点,运行所述目标日志程序;
其中,所述再赋值代码行为执行顺序在所述目标代码行之后的代码行中,首个对所述动态变量进行赋值的代码行。
3.根据权利要求1所述的日志生成方法,其特征在于,所述获取与目标代码行对应的日志程序,作为目标日志程序,包括:
获取预置的日志程序的日志配置信息;其中,所述日志配置信息用于定位通过所述日志程序生成日志的代码行;
根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序。
4.根据权利要求3所述的日志生成方法,其特征在于,所述根据所述日志配置信息,从所述日志程序中获取生成日志的代码行为所述目标代码行的日志程序,作为所述目标日志程序,包括:
获取目标可执行文件中的任一代码行,作为所述目标代码行,获取所述目标代码行在所述目标可执行文件中的代码位置信息;
若通过所述日志配置信息定位的代码行中,存在与所述代码位置信息相匹配的目标代码行,则将定位所述目标代码行的日志配置信息对应的日志程序,作为所述目标日志程序。
5.根据权利要求3或4所述的日志生成方法,其特征在于,所述日志配置信息包括如下至少一种:
代码行所在的可执行文件的文件标识、代码行在可执行文件中所属的方法体、代码行在可执行文件中所在行对应的行标识。
6.根据权利要求1所述的日志生成方法,其特征在于,在获取与目标代码行对应的日志程序,作为目标日志程序之前,还包括:
从业务的可执行文件中获取预先标记的目标可执行文件;其中,所述目标可执行文件中存在通过所述日志程序生成日志的代码行;
根据所述目标可执行文件获取所述目标代码行。
7.根据权利要求1所述的日志生成方法,其特征在于,在运行所述目标日志程序之前,还包括:
根据所述目标代码行所在的目标可执行文件,获取所述动态变量的存储信息,以在运行所述目标日志程序时,根据所述存储信息获取所述目标代码行执行结果。
8.一种日志生成装置,其特征在于,包括:
获取模块,用于获取与目标代码行对应的日志程序,作为目标日志程序;其中,所述目标日志程序用于生成所述目标代码行对应的日志;
运行模块,用于在动态变量表示所述目标代码行的执行结果时,运行所述目标日志程序;其中,所述动态变量为所述目标代码行运行时进行赋值的变量。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述日志生成方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述日志生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341150.9A CN113076296A (zh) | 2021-03-30 | 2021-03-30 | 日志生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341150.9A CN113076296A (zh) | 2021-03-30 | 2021-03-30 | 日志生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113076296A true CN113076296A (zh) | 2021-07-06 |
Family
ID=76611649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110341150.9A Pending CN113076296A (zh) | 2021-03-30 | 2021-03-30 | 日志生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076296A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114218047A (zh) * | 2021-12-17 | 2022-03-22 | 中国建设银行股份有限公司 | Java Web应用的日志输出方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226312A1 (en) * | 2006-03-24 | 2007-09-27 | Nokia Corporation | System and method for using web syndication feeds as a change log for synchronization in a UPnP audio/video environment |
CN105824718A (zh) * | 2016-04-01 | 2016-08-03 | 北京大学 | 基于问答网站知识的软件配置故障自动修复方法和系统 |
WO2017038221A1 (ja) * | 2015-09-04 | 2017-03-09 | 株式会社網屋 | コンピュータ装置の動作記録の解析、翻訳を行い、監査に対する情報の出力及びシステムの傾向分析装置。 |
CN107402869A (zh) * | 2017-07-12 | 2017-11-28 | 东软集团股份有限公司 | 数据采集方法、装置和系统 |
CN109218407A (zh) * | 2018-08-14 | 2019-01-15 | 平安普惠企业管理有限公司 | 基于日志监控技术的代码管控方法及终端设备 |
CN111338900A (zh) * | 2020-02-26 | 2020-06-26 | 北京跃盟科技有限公司 | 监控软件系统的运行状态的方法及装置 |
-
2021
- 2021-03-30 CN CN202110341150.9A patent/CN113076296A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226312A1 (en) * | 2006-03-24 | 2007-09-27 | Nokia Corporation | System and method for using web syndication feeds as a change log for synchronization in a UPnP audio/video environment |
WO2017038221A1 (ja) * | 2015-09-04 | 2017-03-09 | 株式会社網屋 | コンピュータ装置の動作記録の解析、翻訳を行い、監査に対する情報の出力及びシステムの傾向分析装置。 |
CN105824718A (zh) * | 2016-04-01 | 2016-08-03 | 北京大学 | 基于问答网站知识的软件配置故障自动修复方法和系统 |
CN107402869A (zh) * | 2017-07-12 | 2017-11-28 | 东软集团股份有限公司 | 数据采集方法、装置和系统 |
CN109218407A (zh) * | 2018-08-14 | 2019-01-15 | 平安普惠企业管理有限公司 | 基于日志监控技术的代码管控方法及终端设备 |
CN111338900A (zh) * | 2020-02-26 | 2020-06-26 | 北京跃盟科技有限公司 | 监控软件系统的运行状态的方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘寅;吴毅坚;彭鑫;赵文耘;: "威客平台信誉能力评价机制研究", 计算机科学, no. 10 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114218047A (zh) * | 2021-12-17 | 2022-03-22 | 中国建设银行股份有限公司 | Java Web应用的日志输出方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107656874B (zh) | 一种接口测试方法、装置、模拟挡板及系统 | |
CN106506283B (zh) | 银行和企业对接系统的业务测试方法和装置 | |
CN104834602B (zh) | 一种程序发布方法、装置和程序发布系统 | |
CN112217906A (zh) | 结合ai和rpa的通信方法、装置、设备及存储介质 | |
CN110058998B (zh) | 软件测试方法及装置 | |
CN112579437B (zh) | 一种程序运行过程符合性验证方法 | |
CN100520732C (zh) | 性能测试脚本生成方法 | |
CN113076296A (zh) | 日志生成方法、装置、电子设备及存储介质 | |
CN113330419A (zh) | 一种设备应用安装方法和装置 | |
CN112114826A (zh) | 一种烧录管理方法、装置、平台及存储介质 | |
CN114238474A (zh) | 基于排水系统的数据处理方法、装置、设备及存储介质 | |
CN114035789A (zh) | 日志解析模板的生成方法、日志解析方法、装置及设备 | |
CN111563037B (zh) | 基于测试试题的测试优化方法及装置、存储介质、终端 | |
CN112637231A (zh) | 授权方法、装置、存储介质及服务器 | |
CN111625330A (zh) | 跨线程的任务处理方法、装置、服务器及存储介质 | |
CN115276844B (zh) | 通信模组的测试方法、装置、存储介质及电子设备 | |
CN116126291A (zh) | 基于信息管理的快速开发方法、装置、设备及存储介质 | |
CN112800194B (zh) | 一种接口变更识别方法、装置、设备及存储介质 | |
CN113656183A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN112052184A (zh) | 测试脚本的自动生成方法、自动生成装置及存储介质 | |
CN113868116A (zh) | 测试依赖数据的生成方法、装置、服务器及存储介质 | |
CN113051178A (zh) | 测试数据构造方法、装置、设备及介质 | |
CN112711531A (zh) | 用例构建方法、用例构建装置以及可读存储介质 | |
CN107832124B (zh) | 一种在文件处理系统中处理任务的方法和装置 | |
CN112542166A (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 |