CN111427737B - 一种修改异常日志的方法、装置、及电子设备 - Google Patents

一种修改异常日志的方法、装置、及电子设备 Download PDF

Info

Publication number
CN111427737B
CN111427737B CN201910020453.3A CN201910020453A CN111427737B CN 111427737 B CN111427737 B CN 111427737B CN 201910020453 A CN201910020453 A CN 201910020453A CN 111427737 B CN111427737 B CN 111427737B
Authority
CN
China
Prior art keywords
log
modified
exception
exception log
modifying
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
Application number
CN201910020453.3A
Other languages
English (en)
Other versions
CN111427737A (zh
Inventor
李国忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910020453.3A priority Critical patent/CN111427737B/zh
Publication of CN111427737A publication Critical patent/CN111427737A/zh
Application granted granted Critical
Publication of CN111427737B publication Critical patent/CN111427737B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种修改异常日志的方法、装置及电子设备,该方法包括:获取应用程序的目标方法在执行过程中发生异常的情况下生成的异常日志;获取目标方法的执行过程中输入的外部数据;根据外部数据修改异常日志,得到修改后的异常日志。这样,通过修改后的异常日志就可以较为直观地得到目标方法执行异常的时候输入的外部数据,可以还原异常现场。

Description

一种修改异常日志的方法、装置、及电子设备
技术领域
本发明涉及应用性能管理技术领域,更具体地,涉及一种修改异常日志的方法、装置及电子设备。
背景技术
在信息科学和系统控制领域,应用性能管理&监控(Application PerformanceManagement&Monitoring,APM)致力于监控和管理应用软件性能和可用性。通过监测和诊断复杂应用程序的性能问题,来保证软件应用程序的良好运行。
应用性能管理&监控软件可以用于监控应用程序运行过程中的信息、CPU、每秒查询率(Query Per Second,QPS)、日志等。当应用程序出现故障时,应用性能管理&监控软件可以产生100行左右的程序调用过程的异常日志。例如,该应用性能管理&监控软件可以是ARMS(Application Real-Time Monitoring Service)。
现有的应用性能管理&监控软件产生的异常日志的可以为:
java.lang.NullPointerException:at com.alibaba.a3.core.service.anomaly.ItService.doSql(ItService.ja va:216)~[a3-core-2.0.0.jar:na]
可以看出,通过现有的应用性能管理&监控软件生成的异常日志,无法确定应用程序出现异常时外部输入的数据。因此,用户可能无法快速、准确地排查应用程序发生异常的可能。
发明内容
本发明的一个目的是提供一种生成异常日志的新技术方案。
根据本发明的第一方面,提供了一种修改异常日志的方法,包括:
获取应用程序的目标方法在执行过程中发生异常的情况下生成的异常日志;
获取所述目标方法的执行过程中输入的外部数据;
根据所述外部数据修改所述异常日志,得到修改后的异常日志。
可选的,所述根据所述外部数据修改所述异常日志,得到修改后的异常日志的步骤包括:
对所述异常日志进行编译,得到字节码文件;
根据所述外部数据对所述字节码文件进行修改,得到修改后的字节码文件;
对所述修改后的字节码文件进行反编译,得到所述修改后的异常日志。
可选的,所述方法还包括:
获取在拦截所述应用程序的指定方法的异常切面的情况下所拦截到的参数;
根据所述拦截到的参数生成所述异常日志。
可选的,所述方法还包括:
检测获取所述异常日志的第一触发事件是否发生;
根据所述第一触发事件的检测结果,执行所述获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志的步骤。
可选的,所述第一触发事件包括:
达到预设的日志获取周期;和/或,
生成对应所述目标方法的异常日志。
可选的,所述获取所述目标方法的执行过程中输入的外部数据的步骤包括:
拦截所述目标方法执行后的切面,获取所述外部数据。
可选的,所述方法还包括:
检测查看所述修改后的异常日志的第二触发事件是否发生;
根据所述第二触发事件的检测结果,显示所述修改后的异常日志。
可选的,所述第二触发事件包括:
接收到外部触发的查看所述修改后的异常日志的操作;和/或,
得到所述修改后的异常日志。
根据本发明的第二方面,提供了一种修改异常日志的装置,包括:
日志获取模块,用于获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志;
数据获取模块,用于获取所述目标方法的执行过程中输入的外部数据;
日志修改模块,用于根据所述外部数据修改所述异常日志,得到修改后的异常日志。
可选的,所述修改模块包括:
编译单元,用于对所述异常日志进行编译,得到字节码文件;
修改单元,用于根据所述外部数据对所述字节码文件进行修改,得到修改后的字节码文件;
反编译单元,用于对所述修改后的字节码文件进行反编译,得到所述修改后的异常日志。
可选的,所述装置还包括:
参数获取模块,获取在拦截所述应用程序的指定方法的异常切面的情况下所拦截到的参数;
日志生成模块,用于根据所述拦截到的参数生成所述异常日志。
可选的,所述装置还包括:
第一事件检测模块,用于检测获取所述异常日志的第一触发事件是否发生;
所述日志获取模块还用于根据所述第一触发事件的检测结果,获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志。
可选的,所述第一触发事件包括:
达到预设的日志获取周期;和/或,
生成对应所述目标方法的异常日志。
可选的,所述数据获取模块还用于:
拦截所述目标方法执行后的切面,获取所述外部数据。
可选的,所述装置还包括:
第二事件检测模块,用于检测查看所述修改后的异常日志的第二触发事件是否发生;
显示模块,用于根据所述第二触发事件的检测结果,显示所述修改后的异常日志。
可选的,所述第二触发事件包括:
接收到外部触发的查看所述修改后的异常日志的操作;和/或,
得到所述修改后的异常日志。
根据本发明的第三方面,提供了一种电子设备,包括:
根据本发明第二方面所述的装置;或者,
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据本发明第一方面所述的方法。
通过本实施例的方法,根据获取的目标方法执行过程中输入的外部数据,来修改目标方法执行异常的情况下生成的异常日志。这样,通过修改后的异常日志就可以较为直观地得到目标方法执行异常的时候输入的外部数据,可以还原异常现场。此外,还可以解决难以对应异常的方法和外部数据的难题。而且,本实施例方法的内存开销小,性能可控,可用于生产环境大规模使用。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1示出了可用于实现本发明的实施例的电子设备的硬件配置的例子的框图。
图2示出了本发明的实施例的修改异常日志的方法的第一个例子的流程图。
图3示出了本发明的实施例的修改异常日志的方法的第二个例子的流程图。
图4示出了本发明的实施例的修改异常日志的步骤的流程图。
图5示出了本发明的实施例的修改异常日志的方法的第三个例子的流程图。
图6示出了本发明的实施例的修改异常日志的装置的第一个例子的框图。
图7示出了本发明的实施例的日志修改模块的框图。
图8示出了本发明的实施例的修改异常日志的装置的第二个例子的框图。
图9示出了本发明的实施例的修改异常日志的装置的第三个例子的框图。
图10示出了本发明的实施例的电子设备的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wi-Fi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项修改异常日志的方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<实施例>
<方法>
本发明实施例的总体构思,是提供一种修改异常日志的新技术方案,根据获取的目标方法执行过程中输入的外部数据,来修改目标方法执行异常的情况下生成的异常日志。这样,通过修改后的异常日志就可以较为直观地得到目标方法执行异常的时候输入的外部数据,可以还原异常现场。此外,还可以解决难以对应异常的方法和外部数据的难题。而且,本实施例方法的内存开销小,性能可控,可用于生产环境大规模使用。
在本实施例中,提供一种修改异常日志的方法。该修改异常日志的方法可以是由电子设备实施。具体的,可以是由电子设备中的安装的用于实现字节码增强功能的工具实施。
字节码增强指的是在字节码生成之后,对字节码进行修改,增强字节码的功能。这种方式相当于对应用程序的二进制文件进行修改。字节码增强的应用场景主要是减少冗余代码,对开发人员屏蔽底层的实现细节。
在本实施例中,修改异常日志的方法可以如图2所示,包括步骤S2100-S2300。
步骤S2100,获取应用程序的目标方法在执行过程中发生异常的情况下生成的异常日志。
具体的,通过应用性能管理&监控软件,可以用于监控应用程序的目标方法的执行过程。目标方法在执行过程中发生异常的情况下,可以生成目标方法在调用过程的日志,即异常日志。
该异常日志例如可以但不限于是堆栈结构。
在一个例子中,执行步骤S2100之前,该方法还可以包括如图3所示的步骤S3100-S3200:
步骤S3100,获取在拦截应用程序的指定方法的异常切面的情况下所拦截到的异常参数。
电子设备可以是实时或者是按照预设的拦截频率来拦截指定方法的异常切面。指定方法例如可以是应用程序的公共方法,在执行该应用程序的每个目标方法时,都会同时执行该指定方法。该指定方法和目标方法可以相同,也可以不同。
通过拦截指定方法的异常切面,就可以拦截到发生异常的方法所对应的异常参数。在执行目标方法的过程中发生异常的情况下,就可以拦截到与该目标方法对应的异常参数。
本实施例中的异常参数可以包括执行发生异常的代码的类名、方法名和行数。其中,执行发生异常的代码的行数为执行发生异常的代码在应用程序的所有代码中的行数。
具体的,如果在执行该目标方法的某一行代码过程中发生异常,则获取到的参数包括目标方法的类名、方法名、及所述某一行代码的行数。
步骤S3200,根据拦截到的参数生成异常日志。
具体的,可以是预先存储异常日志的模板。根据预设的规则将拦截到的参数填充至该模板中,就可以得到异常日志。
例如,拦截到的参数中包含的类名可以为:com.example.a3.core.service.anomaly.ItService,方法名可以为:doSql,异常代码的行数可以为:216。那么,生成的异常日志例如可以为:
java.lang.NullPointerException:at com.example.a3.core.service.anomaly.ItService.doSql(ItService.ja va:216)~[a3-core-2.0.0.jar:na]
在拦截到的参数包括目标方法的类名、方法名、及执行目标方法时发生异常的代码的行数的情况下,根据拦截到的参数生成的异常日志即为对应目标方法的异常日志。
在一个例子中,在执行步骤S2100之前还包括:检测获取异常日志的第一触发事件是否发生,根据第一触发事件的检测结果执行该步骤S2100。
具体的,可以是在检测到第一触发事件发生的情况下,执行步骤S2100来获取对应目标方法的异常日志。如果没有检测到第一触发事件发生,则可以继续进行检测,无需执行步骤S2100来获取对应目标方法的异常日志。
进一步地,该第一触发事件例如可以包括:
达到预设的日志获取周期;和/或,
生成对应目标方法的异常日志。
在第一触发事件包括达到预设的日志获取周期的情况下,预设的日志获取周期可以是预先根据应用场景设定好的。例如,该预设的日志获取周期可以是一小时。那么,可以每经过一小时执行一次步骤S2100,来获取这一小时内生成的所有异常日志。在每次达到日志获取周期时,可以判定检测到获取异常日志的第一触发事件发生。
在第一触发事件包括生成对应目标方法的异常日志的情况下,可以是在目标方法在执行过程中发生异常时自动生成对应该目标方法的异常日志。在每次生成一个异常日志时,执行一次步骤S2100。因此,可以是在每次生成异常日志的情况下,表明获取异常日志的第一触发事件发生。
步骤S2200,获取目标方法的执行过程中输入的外部数据。
外部数据可以是在目标方法执行过程中由用户输入的,例如可以是URL地址、用户名、登陆密码等。
在一个例子中,外部数据可以是:
[http://tlog.example.net:9999,1364267]
其中,http://tlog.example.net可以是目标方法的执行过程中输入的URL地址,9999可以是目标方法的执行过程中输入的用户名,1364267可以是目标方法的执行过程中输入的登录密码。
进一步地,获取外部数据的方式可以是:拦截目标方法执行后的切面,获取外部数据。
该步骤S2200可以是在目标方法执行的过程中按照预设的数据获取频率来执行的,还可以是在执行完步骤S2100之后自动触发的,也可以是在检测到获取所述异常日志的第一触发事件发生的情况下触发的。其中,数据获取频率可以是预先根据应用场景设定好的。例如,该数据获取频率可以是1分钟,那么,可以是每分钟均获取一次目标方法的执行过程中输入的外部数据。
步骤S2300,根据外部数据修改异常日志,得到修改后的异常日志。
具体的,可以是将外部数据写入异常日志中的指定位置上,得到修改后的异常日志。
例如,在异常日志为:java.lang.NullPointerException:at com.example.a3.core.service.anomaly.ItService.doSql(ItService.ja va:216)~[a3-core-2.0.0.jar:na],外部数据为:[http://tlog.example.net:9999,1364267]的情况下,得到修改后的异常日志可以为:
java.lang.NullPointerException:at com.alibaba.a3.core.service.anomaly.ItService.doSql([http://tlog.taobao.net:9999,1364267]ItService.java:216)~[a3-core-2.0.0.jar:na]
通过本实施例的方法,根据获取的目标方法执行过程中输入的外部数据,来修改目标方法执行异常的情况下生成的异常日志。这样,通过修改后的异常日志就可以较为直观地得到目标方法执行异常的时候输入的外部数据,可以还原异常现场。此外,还可以解决难以对应异常的方法和外部数据的难题。而且,本实施例方法的内存开销小,性能可控,可用于生产环境大规模使用。
在一个例子中,步骤S2300可以进一步包括如图4所示的步骤S2310-S2330:
步骤S2310,对异常日志进行编译得到字节码文件。
本实施例中的异常日志相当于是源码,可以是通过编译器和/或虚拟机器对异常日志进行编译得到字节码文件。
字节码是一种包含执行程序,由一序列OP代码/数据对组成的二进制文件,是一种中间码。字节码通常不像源码(即异常日志)一样可以让人阅读,而是编码后的数值常量、引用、指令等构成的序列。字节码主要为了实现特定软件运行和软件环境、与硬件环境无关。
步骤S2320,根据外部数据对字节码文件进行修改,得到修改后的字节码文件。
具体的,可以是通过字节码增强技术对字节码文件进行修改。字节码增强指的是在字节码生成之后,对字节码进行修改,增强字节码的功能。这种方式相当于对应用程序的二进制文件进行修改。
进一步地,可以是对外部数据进行编译得到数据的字节码,再将数据的字节码写入所述字节码文件的指定位置上,得到修改后的字节码文件。
步骤S2330,对修改后的字节码文件进行反编译,得到修改后的异常日志。
可以通过反编译工具对修改后的字节码文件进行反编译,可以得到新的源码,即修改后的异常日志。
在本实施例中,通过字节码增强的方式对异常日志编译后的字节码文件进行修改,再对修改后的字节码文件进行反编译得到修改后的字节码文件,可以减少冗余代码,对开发人员屏蔽底层的实现细节。而且,开发人员无需对代码进行修改。
在一个例子中,该方法还可以包括如图5所示的步骤S5100-S5200:
步骤S5100,检测查看修改后的异常日志的第二触发事件是否发生。
第二触发事件例如可以包括:
接收到外部触发的查看修改后的异常日志的操作;和/或,
得到修改后的异常日志。
在第二触发事件包括接收到外部触发的查看修改后的异常日志的操作的情况下,可以是由用户触发查看修改后的异常日志的操作。该操作例如可以是针对修改后的异常日志的双击操作,或者是对应该查看修改后的异常日志的按钮的点击操作。因此,在接收到外部触发的查看修改后的异常日志的操作的情况下,可以判定查看修改后的异常日志的第二触发事件发生。
在第二触发事件包括得到修改后的异常日志的情况下,可以是在执行完步骤S2300得到修改后的异常日志之后,自动触发查看修改后的异常日志的第二触发事件发生。
步骤S5200,根据第二触发事件的检测结果,显示修改后的异常日志。
具体的,可以是在检测到第二触发事件发生的情况下,显示修改后的异常日志,供开发人员查看并对异常进行处理。
<装置>
在本实施例中,提供一种修改异常日志的装置6000,如图6所示,包括:日志获取模块6100、数据获取模块6200和日志修改模块6300。该日志获取模块6100用于获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志;该数据获取模块6200用于获取目标方法的执行过程中输入的外部数据;该日志修改模块6300用于根据外部数据修改异常日志,得到修改后的异常日志。
如图7所示,该日志修改模块6300可以进一步包括:编译单元6310、修改单元6320和反编译单元6330。该编译单元6310用于对异常日志进行编译,得到字节码文件;该修改单元6320用于根据外部数据对字节码文件进行修改,得到修改后的字节码文件;该反编译单元6330用于对修改后的字节码文件进行反编译,得到修改后的异常日志。
在一个例子中,如图8所示,该装置6000还可以包括:参数获取模块8100和日志生成模块8200,该参数获取模块8100用于获取在拦截所述应用程序的指定方法的异常切面的情况下所拦截到的参数;该日志生成模块8200用于根据拦截到的参数生成异常日志。
如图9所示,该装置6000还可以包括第一事件检测模块9100。该第一事件检测模块9100用于检测获取异常日志的第一触发事件是否发生。日志获取模块6300还用于根据第一触发事件的检测结果,获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志。
在一个例子中,第一触发事件可以包括:
达到预设的日志获取周期;和/或,
生成对应目标方法的异常日志。
在一个例子中,该数据获取模块6200还可以用于:拦截目标方法执行后的切面,获取外部数据。
如图9所示,该装置6000还可以包括:第二事件检测模块9200和显示模块9300。该第二事件检测模块9200用于检测查看修改后的异常日志的第二触发事件是否发生;该显示模块9300用于根据第二触发事件的检测结果,显示修改后的异常日志。
在一个例子中,该第二触发事件可以包括:
接收到外部触发的查看修改后的异常日志的操作;和/或,
得到修改后的异常日志。
本领域技术人员应当明白,可以通过各种方式来实现修改异常日志的装置6000。例如,可以通过指令配置处理器来实现修改异常日志的装置6000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现修改异常日志的装置6000。例如,可以将修改异常日志的装置6000固化到专用器件(例如ASIC)中。可以将修改异常日志的装置6000分成相互独立的单元,或者可以将它们合并在一起实现。修改异常日志的装置6000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
在本实施例中,修改异常日志的装置6000可以具有多种实现形式,例如,修改异常日志的装置6000可以是任何的提供网络访问服务的软件产品或者应用程序中运行的功能模块,或者是这些软件产品或者应用程序的外设嵌入件、插件、补丁件等,还可以是这些软件产品或者应用程序本身。
<电子设备>
在本实施例中,还提供一种电子设备,在一方面,该电子设备可以包括前述的修改异常日志的装置6000。
在另一方面,如图10所示,该电子设备7000可以包括存储器7100和处理器7200。该存储器7100用于存储指令;该指令用于控制处理器7200执行本实施例中提供的修改异常日志的方法。
在本实施例中,该电子设备7000可以是手机、平板电脑、掌上电脑、台式机、笔记本电脑、工作站、游戏机等任意具有对应的存储器7100以及处理器7200的电子设备。例如,电子设备7000可以是安装有字节码增强工具的电子设备。
在本实施例中,电子设备7000还可以包括其他的硬件装置,例如,如图1所示的电子设备1000。
通过本实施例的方法,根据获取的目标方法执行过程中输入的外部数据,来修改目标方法执行异常的情况下生成的异常日志。这样,通过修改后的异常日志就可以较为直观地得到目标方法执行异常的时候输入的外部数据,可以还原异常现场。此外,还可以解决难以对应异常的方法和外部数据的难题。而且,本实施例方法的内存开销小,性能可控,可用于生产环境大规模使用。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种修改异常日志的方法,其中,包括:
获取应用程序的目标方法在执行过程中发生异常的情况下生成的异常日志;
获取所述目标方法的执行过程中输入的外部数据;
根据所述外部数据修改所述异常日志,得到修改后的异常日志。
2.根据权利要求1所述的方法,其中,所述根据所述外部数据修改所述异常日志,得到修改后的异常日志的步骤包括:
对所述异常日志进行编译,得到字节码文件;
根据所述外部数据对所述字节码文件进行修改,得到修改后的字节码文件;
对所述修改后的字节码文件进行反编译,得到所述修改后的异常日志。
3.根据权利要求1所述的方法,其中,所述方法还包括:
获取在拦截所述应用程序的指定方法的异常切面的情况下所拦截到的参数;
根据所述拦截到的参数生成所述异常日志。
4.根据权利要求1所述的方法,其中,所述方法还包括:
检测获取所述异常日志的第一触发事件是否发生;
根据所述第一触发事件的检测结果,执行所述获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志的步骤。
5.根据权利要求4所述的方法,其中,所述第一触发事件包括:
达到预设的日志获取周期;和/或,
生成对应所述目标方法的异常日志。
6.根据权利要求1所述的方法,其中,所述获取所述目标方法的执行过程中输入的外部数据的步骤包括:
拦截所述目标方法执行后的切面,获取所述外部数据。
7.根据权利要求1所述的方法,其中,所述方法还包括:
检测查看所述修改后的异常日志的第二触发事件是否发生;
根据所述第二触发事件的检测结果,显示所述修改后的异常日志。
8.根据权利要求7所述的方法,其中,所述第二触发事件包括:
接收到外部触发的查看所述修改后的异常日志的操作;和/或,
得到所述修改后的异常日志。
9.一种修改异常日志的装置,其中,包括:
日志获取模块,用于获取在应用程序的目标方法的执行过程中发生异常的情况下生成的异常日志;
数据获取模块,用于获取所述目标方法的执行过程中输入的外部数据;
日志修改模块,用于根据所述外部数据修改所述异常日志,得到修改后的异常日志。
10.一种电子设备,其中,包括:
根据权利要求9所述的装置;或者,
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1-8中任一项所述的方法。
CN201910020453.3A 2019-01-09 2019-01-09 一种修改异常日志的方法、装置、及电子设备 Active CN111427737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910020453.3A CN111427737B (zh) 2019-01-09 2019-01-09 一种修改异常日志的方法、装置、及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910020453.3A CN111427737B (zh) 2019-01-09 2019-01-09 一种修改异常日志的方法、装置、及电子设备

Publications (2)

Publication Number Publication Date
CN111427737A CN111427737A (zh) 2020-07-17
CN111427737B true CN111427737B (zh) 2023-05-05

Family

ID=71545920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910020453.3A Active CN111427737B (zh) 2019-01-09 2019-01-09 一种修改异常日志的方法、装置、及电子设备

Country Status (1)

Country Link
CN (1) CN111427737B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112015653A (zh) * 2020-08-31 2020-12-01 中移(杭州)信息技术有限公司 问题定位方法、服务器及存储介质
CN112214378B (zh) * 2020-10-23 2023-03-24 珠海格力电器股份有限公司 数据收集方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326129A (zh) * 2016-09-09 2017-01-11 福建中金在线信息科技有限公司 一种程序异常信息生成方法及装置
US9552249B1 (en) * 2014-10-20 2017-01-24 Veritas Technologies Systems and methods for troubleshooting errors within computing tasks using models of log files
CN106776245A (zh) * 2016-11-18 2017-05-31 维沃移动通信有限公司 一种异常应用处理方法、装置及移动终端
CN107102795A (zh) * 2017-05-31 2017-08-29 努比亚技术有限公司 一种日志记录方法、移动终端以及计算机可读存储介质
CN107423090A (zh) * 2017-06-29 2017-12-01 武汉斗鱼网络科技有限公司 一种Flash播放器异常日志管理方法及系统
CN109144965A (zh) * 2018-08-30 2019-01-04 百度在线网络技术(北京)有限公司 一种日志处理方法、装置、设备和介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244755B2 (en) * 2013-05-20 2016-01-26 Vmware, Inc. Scalable log analytics
US10360184B2 (en) * 2015-06-24 2019-07-23 International Business Machines Corporation Log file analysis to locate anomalies

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552249B1 (en) * 2014-10-20 2017-01-24 Veritas Technologies Systems and methods for troubleshooting errors within computing tasks using models of log files
CN106326129A (zh) * 2016-09-09 2017-01-11 福建中金在线信息科技有限公司 一种程序异常信息生成方法及装置
CN106776245A (zh) * 2016-11-18 2017-05-31 维沃移动通信有限公司 一种异常应用处理方法、装置及移动终端
CN107102795A (zh) * 2017-05-31 2017-08-29 努比亚技术有限公司 一种日志记录方法、移动终端以及计算机可读存储介质
CN107423090A (zh) * 2017-06-29 2017-12-01 武汉斗鱼网络科技有限公司 一种Flash播放器异常日志管理方法及系统
CN109144965A (zh) * 2018-08-30 2019-01-04 百度在线网络技术(北京)有限公司 一种日志处理方法、装置、设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马思峻 ; 肖荣 ; 成江伟 ; .Android应用性能数据采集探针研究.计算机应用与软件.2017,(第07期),全文. *

Also Published As

Publication number Publication date
CN111427737A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
US9519570B2 (en) Progressive snapshots in automated software testing
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN111708557B (zh) 更新配置文件的方法、设备及存储介质
US10503341B2 (en) Usability analysis for user interface based systems
CN106815524B (zh) 恶意脚本文件的检测方法及装置
US20170249067A1 (en) User interface feature recommendation
CN105793862A (zh) 动态程序在隔离环境中的受指导执行
CN111427737B (zh) 一种修改异常日志的方法、装置、及电子设备
CN105988931A (zh) 测试方法及装置
US10027692B2 (en) Modifying evasive code using correlation analysis
CN109753793A (zh) 一种热补丁方法及热补丁装置
CN106776327A (zh) 一种应用程序回归测试方法及装置
WO2017189727A1 (en) Techniques for monitoring version numbers of web frameworks
JP2021192214A (ja) アプリケーションの動作状態を検証する方法および装置
US9313218B1 (en) Systems and methods for providing information identifying the trustworthiness of applications on application distribution platforms
CN111177720A (zh) 基于大数据生成威胁情报的方法、装置及可读存储介质
CN106919597B (zh) 信息推荐方法及装置
CN111427738B (zh) 展示方法、应用监控模块、字节码增强模块及展示系统
US10606580B2 (en) Cognitive identification of related code changes
CN104965701A (zh) 获取应用信息的方法及装置
CN105447348B (zh) 一种显示窗口的隐藏方法、装置及用户终端
EP3506136B1 (en) Detecting stack cookie utilization in a binary software component using binary static analysis
CN113839944B (zh) 应对网络攻击的方法、装置、电子设备和介质
US10530835B2 (en) Application recording
CN113076728A (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
GR01 Patent grant
GR01 Patent grant