CN106547782A - 日志信息的获取方法及装置 - Google Patents

日志信息的获取方法及装置 Download PDF

Info

Publication number
CN106547782A
CN106547782A CN201510606860.4A CN201510606860A CN106547782A CN 106547782 A CN106547782 A CN 106547782A CN 201510606860 A CN201510606860 A CN 201510606860A CN 106547782 A CN106547782 A CN 106547782A
Authority
CN
China
Prior art keywords
file
application program
symbol
mark
information
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.)
Granted
Application number
CN201510606860.4A
Other languages
English (en)
Other versions
CN106547782B (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co 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 CN201510606860.4A priority Critical patent/CN106547782B/zh
Publication of CN106547782A publication Critical patent/CN106547782A/zh
Application granted granted Critical
Publication of CN106547782B publication Critical patent/CN106547782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例涉及一种日志信息的获取方法及装置,包括:获取应用程序对应的日志文件;从所述日志文件中提取所述应用程序的第一标识;根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。由此,可以实现方便而快速地获取日志文件的目标信息。

Description

日志信息的获取方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种日志信息的获取方法及装置。
背景技术
当终端设备上安装的应用程序(Application,APP)由于出现异常而崩溃时,通常需要获取由终端设备的操作系统(如,IOS)记录下来的崩溃日志(Crash Log)文件,通过对该崩溃日志文件的解析,来确定该应用程序崩溃的原因。
上述崩溃日志文件中记录的原始信息通常为十六进制的内存地址,不适用于分析人员阅读。为了将上述原始信息转换成可阅读的信息(也称目标信息),则需要获取应用程序对应的符号文件(DSYM),此处,符号文件是在应用程序的编译阶段生成的,用于记录日志文件中的原始信息与目标信息的对应关系的文件,通过该符号文件,将崩溃日志文件中的原始信息转换成目标信息。然而,操作系统记录的崩溃日志文件与应用程序对应的符号文件通常不在同一个目录下,且也没有记录对应关系,因此,如何方便而快速地获取到日志文件对应的符号文件就成为迫切需要解决的问题。
现有技术中,在应用程序的编译打包阶段,在其配置文件注入一些唯一性信息,如,打包日期和打包类型等,以使终端设备的操作系统在记录与该应用程序对应的崩溃日志文件时,将上述唯一性信息写入到崩溃日志文件中,由日志分析模块在接收到上述崩溃日志文件时,通过其中的唯一性信息去获取对应的符号文件。然而,由于该方法需要修改应用程序,且需要修改原始的崩溃日志文件,这使得日志信息的获取方法变得复杂化。
发明内容
本申请实施例提供了一种日志信息的获取方法及装置,可以实现方便而快速地获取日志文件的目标信息。
第一方面,提供了一种日志信息的获取方法,该方法包括:
获取应用程序对应的日志文件;
从所述日志文件中提取所述应用程序的第一标识;
根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;
根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。
第二方面,提供了一种日志信息的获取装置,该装置包括:获取单元、提取单元、查找单元和解析单元;
所述获取单元,用于获取应用程序对应的日志文件;
所述提取单元,用于从所述获取单元获取的所述日志文件中提取所述应用程序的第一标识;
所述查找单元,用于根据所述提取单元提取的所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;
所述解析单元,用于根据所述查找单元查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。
本申请提供的日志信息的获取方法及装置,获取应用程序对应的日志文件;从所述日志文件中提取所述应用程序的第一标识;根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。由此,可以实现方便而快速地获取日志文件的目标信息。
附图说明
图1为本申请一种实施例提供的日志信息的获取方法流程图;
图2为本申请另一种实施例提供的日志信息的获取装置示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于对本申请实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本申请实施例的限定。
本申请实施例提供的日志信息的获取方法及装置,适用于从终端设备上安装的应用程序的日志文件中获取目标信息的场景,尤其适用于从终端设备上安装的应用程序的崩溃日志文件中获取目标信息的场景。此处,崩溃日志文件是由终端设备的操作系统(如,IOS和Mac OS等)在应用程序出现异常而崩溃后记录的日志文件,该崩溃日志文件中通常记录的是十六进制的内存地址(也称原始信息),其对应唯一的通用唯一识别码(Universally UniqueIdentifier,UUID)。崩溃日志文件对应的UUID也可以为与其对应的应用程序的UUID。
需要说明的是,为了确定应用程序崩溃的原因,则需要对相应的崩溃日志文件进行解析,也即将崩溃日志文件中的原始信息转换成可阅读的信息。
图1为本申请一种实施例提供的日志信息的获取方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如图1所示,所述方法具体包括:
步骤110,获取应用程序对应的日志文件。
日志文件是用于记录系统消息的文件,包括两种类型:记录故障信息的日志文件和记录非故障信息的日志文件,其中,记录故障信息的日志文件也称崩溃日志文件,该类日志文件是由终端设备的操作系统(如,IOS)在应用程序出现异常而崩溃后记录的文件,在此说明书中,以日志文件为崩溃日志文件进行说明。
步骤110中可以通过两种方式获取应用程序对应的日志文件:第一种方式是,接收由终端设备上传的应用程序对应的日志文件;第二种方式是,通过Xcode的导出工具(Organizer)可以将IOS终端设备中的设备日志(DeviceLog)导出成日志文件(也称为真机导出的日志文件),其中,Xcode是开发IOS终端设备上安装的应用程序的集成开发环境(Integrated DevelopmentEnvironment,IDE)工具平台。
步骤120,从所述日志文件中提取所述应用程序的第一标识。
其中,步骤120具体可以为:从所述日志文件中包含所述应用程序的名称的代码行中提取所述应用程序的第一标识。
举例来说,假设应用程序的名称为“Xxxx”,且假设日志文件为崩溃日志文件,则从崩溃日志文件中包含“Xxxx”的代码行中提取应用程序的第一标识。而在崩溃日志文件中,包含“Xxxx”的代码行一般为崩溃日志文件的二进制图像(Binary Images)区域的第一行,具体如下所示:
0x10003c000-0x10245bfff+Xxxx arm64<59880be686f93c2cacd543078049cfbd>/private/var/mobile/Containers/Bundle/Application/18A9A558-AC3B-4FAE-B727-754E8C7190D7/Xxxx.app/Xxxx
从上述代码行中提取尖括号中的字符串“59880be686f93c2cacd543078049cfbd”作为名称为“Xxxx”的应用程序的第一标识。
步骤130,根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件。
其中,步骤130中的预设的存储单元是通过如下步骤创建的:
步骤A:从所述应用程序的安装包中获取所述应用程序对应的程序逻辑文件,并根据所述应用程序的安装包,确定所述符号文件的位置信息,其中,所述程序逻辑文件是预定义的用于记录所述应用程序的第二标识的计算机程序可识别文件。
此处,程序逻辑文件也称二进制文件,其是在应用程序的源代码编译时生成的,用于记录所述应用程序的第二标识的计算机程序可识别文件,该程序逻辑文件包含在应用程序的安装包中,其中,应用程序的安装包是在对应用程序的源代码编译后,并执行打包操作时生成的。举例来说,当应用程序的名称为“Xxxx”时,则生成的程序逻辑文件的名称可以为“Xxxx”。此外,还需要说明的是,程序逻辑文件中记录的第二标识与日志文件中的第一标识均为应用程序的UUID,唯一的区别在于格式不同,在将日志文件中的第一标识经过预处理,如,将第一标识中包含的小写字母转换成大写字母,并按照8444格式添加分割线之后,就可以得到程序文件中记录的第二标识。
此外,在对应用程序的源代码编译时,还生成对应的符号文件,符号文件包含符号信息(也称调试信息),符号信息就是源代码中每个对象的名称。例如变量、函数、类型等,它们都有一个名称,以及其它的相关信息:变量有类型、地址等信息;函数有返回值类型、参数类型、地址等信息;类型有长度等信息。上述生成的符号文件也包含在应用程序的安装包中,且存放在预先设定的目录下,如,在应用程序的名称为“Xxxx”时,上述生成的符号文件可以存储在目录“Xxxx.DSYM”下,该目录在应用程序的安装包中对应的路径信息即为确定的符号文件的位置信息。举例来说,当应用程序的名称为“Xxxx”时,则确定的符号文件的位置信息可以为“/path/to/Xxxx.dSYM/Contents/Resources/DWARF/Xxxx”。
步骤B:从所述程序逻辑文件中提取所述应用程序的第二标识。
在一种具体实现方式中,当程序逻辑文件的名称为“Xxxx”时,则可以对程序逻辑文件执行指令:$dwarfdump-u Xxxx,以提取程序逻辑文件中包含的应用程序的第二标识,在一种方式中,在执行上述指令后获取到的应用程序的信息如下所示:
59880BE6-86F9-3C2C-ACD5-43078049CFBD(arm64)Xxxx
此处,获取的信息包含三部分内容:第二标识、CPU架构和二进制文件名。在一种具体实现方式中,还需要从上述获取到的信息中提取出第二标识,即最终提取到的第二标识为:DCEDE8C5-F91C-38AA-BBC8-41657B934D22。
可选地,为了减小应用程序的压缩包的大小,可以在对应用程序执行打包之前,对上述程序逻辑文件执行如下指令:
$strip+x Xxxx
通过上述指令的执行来过滤程序逻辑文件中的符号信息;或者,也可以通过修改应用程序的配置文件的配置项来过滤程序逻辑文件中的符号信息,如前述例子,可以修改Xxxx的配置文件Info.plist中的配置项“Strip DebugSymbols During Copy”为YES;以及修改“Strip Linked Product”为YES,来实现上述符号信息的过滤。需要说明的是,此处,程序逻辑文件中的符号信息与符号文件中的符号信息是一致的,所以,在此不作赘述。
步骤C:将所述应用程序的第二标识与所述符号文件的位置信息的对应关系存储到所述预设的存储单元中。
举例来说,创建的预设的存储单元可以如表1所示:
表1
字段名
id 本次打包的id,自增量
app_name Xxxx
app_id com.xxx.Xxxx
dsym_path /path/to/Xxxx.dSYM/Contents/Resources/DWARF/Xxxx
archi_arm64 59880BE6-86F9-3C2C-ACD5-43078049CFBD
即表1中存储了从程序逻辑文件中提取的应用程序的第二标识,同时也存储了符号文件的位置信息,且应用程序的第二标识与符号文件的位置信息之间是一一对应的关系,也即预设的存储单元中存储了应用程序的第二标识与符号文件的位置信息的对应关系。
当然,表1只是预设的存储单元的一种具体实现方式,在实际应用中,也可以在表1中增加其它字段,或者删除部分字段,本申请对此不作限定。
可以理解的是,当终端设备上安装的应用程序的个数为多个时,则终端设备的操作系统需要记录多个应用程序的日志文件,因此,需要通过多个预设的存储单元存储多个应用程序的第二标识与符号文件的对应关系。也即应用程序与预设的存储单元也是一一对应的关系。在一种优选的方式中,当与应用程序对应的预设的存储单元为表时,多个表的字段名可以相同,不同的是字段内容。
还需要说明的是,表1中记录的行数和当前表1对应的应用程序的打包次数相关。
回到步骤130中,步骤130中根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息具体可以包括:
步骤1301,对所述第一标识进行预处理,得到目标标识。
其中,预处理可以包括字符串的大小写转换以及在指定的位置添加下划线等。如前述例子,提取的第一标识为字符串:59880be686f93c2cacd543078049cfbd,将上述字符串中的小写字母转换为大写字母,并按照8444格式添加下划线(即在分别在间隔8、4、4和4个字符的位置添加下划线)之后,得到的目标标识为:59880BE6-86F9-3C2C-ACD5-43078049CFBD。
步骤1302,将所述目标标识与所述预设的存储单元中的第二标识进行比对,将比对一致的第二标识对应的符号文件的位置信息作为所述查找到的所述符号文件的位置信息。
如前述例子,可以将目标标识“59880BE6-86F9-3C2C-ACD5-43078049CFBD”与表1中记录的应用程序的第二标识进行比对,因为目标标识与表1中第一行记录的字段“archi_arm64”的内容比对一致,因此,将第一行记录中字段“dsym_path”对应的内容“/path/to/Xxxx.dSYM/Contents/Resources/DWARF/Xxxx”作为查找到的所述符号文件的位置信息。
步骤140,根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。
此处,预设的脚本文件可以是Xcode提供的反解关键脚本文件(symbolicatecrash),该预设的脚本文件存储在Xcode软件目录下。优选地,该预设的脚本文件可以是perl脚本。在一种具体实现方式中,可以在/Applications/Xcode.app/目录下执行命令:
$find.-name"symbolicatecrash"-type f
通过上述命令即可找到预设的脚本文件,现有技术中在执行该预设的脚本文件时,首先从程序逻辑文件中获取符号信息,之后根据获取到的符号信息,对应用程序的日志文件进行解析,以得到日志文件的目标信息。然而,本申请中为了减小应用程序的压缩包,对二进制文件中的符号信息进行了删除,在执行上述预设的脚本文件时,不能获取到符号信息,也即不能对日志文件进行正确解析,所以本申请可以对预设的脚本文件进行修改。在一种具体实现方式中,可以通过如下方式进行修改:
首先通过文本编辑器打开预设的脚本文件,之后在预设的脚本文件中查找如下代码段:
print STDERR"Did not find executable for dsym\n"if$opt{v};
return
并进行修改,使得修改后的预设的脚本文件可以支持从输入的位置信息读取符号文件。
回到步骤140中,步骤140还可以进一步包括:
将所述符号文件的位置信息和所述日志文件输入预设的脚本文件,以使所述预设的脚本文件根据所述符号文件的位置信息,读取所述符号文件,并使所述脚本文件根据读取的所述符号文件对所述日志文件进行解析,得到所述日志文件的所述目标信息。
如前述例子中,可以将符号文件的位置信息“/path/to/Xxxx.dSYM/Contents/Resources/DWARF/Xxxx”输入修改后的预设的脚本文件,使得修改后的预设的脚本文件可以根据上述位置信息,读取到应用程序对应的符号文件。在一个具体例子中,原始信息为十六进制的内存地址信息,目标信息为所述应用程序对应的源代码中的函数名和/或变量名以及文件名。也即,根据读取到的符号文件中的符号信息对日志文件中的十六进制的内存地址信息进行解析,得到当前应用程序中出错的函数名和/或变量名以及文件名,以便于分析人员根据分析得到的函数名和/或变量名以及文件名,对该应用程序进行维护。
本申请提供的日志信息的获取方法,获取应用程序对应的日志文件;从所述日志文件中提取所述应用程序的第一标识;根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。由此,可以实现方便而快速地获取日志文件的目标信息。此外,本申请的方法可以直接从原始的日志文件中获取目标信息,不需要对原始的日志文件进行二次加工,其可以应用到所有业务场景和平台环境。
与上述日志信息的获取方法对应地,本申请实施例还提供的一种日志信息的获取装置,如图2所示,该装置包括:获取单元201、提取单元202、查找单元203和解析单元204;
获取单元201,用于获取应用程序对应的日志文件。
提取单元202,用于从获取单元201获取的所述日志文件中提取所述应用程序的第一标识。
提取单元202具体用于:从所述日志文件中包含所述应用程序的名称的代码行中提取所述应用程序的第一标识。
查找单元203,用于根据提取单元202提取的所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件。
其中,所述原始信息可以为十六进制的内存地址信息,所述目标信息可以为所述应用程序对应的源代码中的函数名和/或变量名以及文件名。
查找单元203具体可以包括:预处理单元2031和比对单元2032;
预处理单元2031,用于对所述第一标识进行预处理,得到目标标识;
比对单元2032,用于将预处理单元2031处理得到的所述目标标识与所述预设的存储单元中的第二标识进行比对,将比对一致的第二标识对应的符号文件的位置信息作为所述查找到的所述符号文件的位置信息。
解析单元204,用于根据查找单元203查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。
解析单元204具体用于:将所述符号文件的位置信息和所述日志文件输入预设的脚本文件,以使所述预设的脚本文件根据所述符号文件的位置信息,读取所述符号文件,并使所述脚本文件根据读取的所述符号文件对所述日志文件进行解析,得到所述日志文件的所述目标信息。
可选地,所述装置还包括:存储单元205;
获取单元201,还用于从所述应用程序的安装包中获取所述应用程序对应的程序逻辑文件,并根据所述应用程序的安装包,确定所述符号文件的位置信息,其中,所述程序逻辑文件是预定义的用于记录所述应用程序的第二标识的计算机程序可识别文件;
提取单元202,还用于从获取单元201获取的所述程序逻辑文件中提取所述应用程序的第二标识;
存储单元205,用于将提取单元202提取的所述应用程序的第二标识与所述符号文件的位置信息的对应关系存储到所述预设的存储单元中。
本申请实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本申请提供的装置的具体工作过程,在此不复赘述。
本申请提供的日志信息的获取装置,获取单元201获取应用程序对应的日志文件;提取单元202从所述日志文件中提取所述应用程序的第一标识;查找单元203根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;解析单元204根据所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。由此,可以实现方便而快速地获取日志文件的目标信息。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种日志信息的获取方法,其特征在于,所述方法包括:
获取应用程序对应的日志文件;
从所述日志文件中提取所述应用程序的第一标识;
根据所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;
根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:创建所述预设的存储单元的步骤,包括:
从所述应用程序的安装包中获取所述应用程序对应的程序逻辑文件,并根据所述应用程序的安装包,确定所述符号文件的位置信息,其中,所述程序逻辑文件是预定义的用于记录所述应用程序的第二标识的计算机程序可识别文件;
从所述程序逻辑文件中提取所述应用程序的第二标识;
将所述应用程序的第二标识与所述符号文件的位置信息的对应关系存储到所述预设的存储单元中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一标识,从预设的存储单元中查找所述日志文件对应的符号文件的位置信息,包括:
对所述第一标识进行预处理,得到目标标识;
将所述目标标识与所述预设的存储单元中的第二标识进行比对,将比对一致的第二标识对应的符号文件的位置信息作为所述查找到的所述符号文件的位置信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述日志文件中提取所述应用程序的第一标识,包括:
从所述日志文件中包含所述应用程序的名称的代码行中提取所述应用程序的第一标识。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息,包括:
将所述符号文件的位置信息和所述日志文件输入预设的脚本文件,以使所述预设的脚本文件根据所述符号文件的位置信息,读取所述符号文件,并使所述脚本文件根据读取的所述符号文件对所述日志文件进行解析,得到所述日志文件的所述目标信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述原始信息为十六进制的内存地址信息,所述目标信息为所述应用程序对应的源代码中的函数名和/或变量名以及文件名。
7.一种日志信息的获取装置,其特征在于,所述装置包括:获取单元、提取单元、查找单元和解析单元;
所述获取单元,用于获取应用程序对应的日志文件;
所述提取单元,用于从所述获取单元获取的所述日志文件中提取所述应用程序的第一标识;
所述查找单元,用于根据所述提取单元提取的所述第一标识,从预设的存储单元中查找所述应用程序对应的符号文件的位置信息,其中,所述符号文件是预定义的用于记录所述日志文件中的原始信息与目标信息的对应关系的文件;
所述解析单元,用于根据所述查找单元查找到的所述符号文件的位置信息以及预设的脚本文件,对所述日志文件进行解析,得到所述日志文件的所述目标信息。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:存储单元;
所述获取单元,还用于从所述应用程序的安装包中获取所述应用程序对应的程序逻辑文件,并根据所述应用程序的安装包,确定所述符号文件的位置信息,其中,所述程序逻辑文件是预定义的用于记录所述应用程序的第二标识的计算机程序可识别文件;
所述提取单元,还用于从所述获取单元获取的所述程序逻辑文件中提取所述应用程序的第二标识;
所述存储单元,用于将所述提取单元提取的所述应用程序的第二标识与所述符号文件的位置信息的对应关系存储到所述预设的存储单元中。
9.根据权利要求8所述的装置,其特征在于,所述查找单元包括:预处理单元和比对单元;
所述预处理单元,用于对所述第一标识进行预处理,得到目标标识;
所述比对单元,用于将所述预处理单元处理得到的所述目标标识与所述预设的存储单元中的第二标识进行比对,将比对一致的第二标识对应的符号文件的位置信息作为所述查找到的所述符号文件的位置信息。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述提取单元具体用于:
从所述日志文件中包含所述应用程序的名称的代码行中提取所述应用程序的第一标识。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述解析单元具体用于:
将所述符号文件的位置信息和所述日志文件输入预设的脚本文件,以使所述预设的脚本文件根据所述符号文件的位置信息,读取所述符号文件,并使所述脚本文件根据读取的所述符号文件对所述日志文件进行解析,得到所述日志文件的所述目标信息。
12.根据权利要求7-11任一项所述的装置,其特征在于,所述原始信息为十六进制的内存地址信息,所述目标信息为所述应用程序对应的源代码中的函数名和/或变量名以及文件名。
CN201510606860.4A 2015-09-22 2015-09-22 日志信息的获取方法及装置 Active CN106547782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510606860.4A CN106547782B (zh) 2015-09-22 2015-09-22 日志信息的获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510606860.4A CN106547782B (zh) 2015-09-22 2015-09-22 日志信息的获取方法及装置

Publications (2)

Publication Number Publication Date
CN106547782A true CN106547782A (zh) 2017-03-29
CN106547782B CN106547782B (zh) 2020-06-02

Family

ID=58365297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510606860.4A Active CN106547782B (zh) 2015-09-22 2015-09-22 日志信息的获取方法及装置

Country Status (1)

Country Link
CN (1) CN106547782B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391762A (zh) * 2017-08-28 2017-11-24 京信通信系统(中国)有限公司 日志数据的处理方法及装置
CN109240917A (zh) * 2018-08-13 2019-01-18 山东中创软件工程股份有限公司 一种日志管理方法及相关装置
CN110764945A (zh) * 2019-10-23 2020-02-07 北京博睿宏远数据科技股份有限公司 一种崩溃日志处理方法、装置、设备和存储介质
CN111638991A (zh) * 2020-06-05 2020-09-08 贝壳技术有限公司 用于解析崩溃文件的方法与系统
CN112100018A (zh) * 2019-06-17 2020-12-18 腾讯科技(深圳)有限公司 一种日志信息生成的方法及相关装置
WO2022247442A1 (zh) * 2021-05-24 2022-12-01 北京字节跳动网络技术有限公司 符号解析方法、装置、设备及存储介质
CN116662045A (zh) * 2022-11-18 2023-08-29 荣耀终端有限公司 进程名称获取方法、终端设备及存储介质
WO2023197851A1 (zh) * 2022-04-14 2023-10-19 北京字节跳动网络技术有限公司 异常组件的识别方法、装置、设备、存储介质及程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246964A1 (en) * 2010-04-02 2011-10-06 Apple Inc. Archiving a Build Product
CN104516732A (zh) * 2013-09-29 2015-04-15 北京新媒传信科技有限公司 一种应用程序崩溃报告方法和系统
CN104794046A (zh) * 2014-01-21 2015-07-22 腾讯科技(深圳)有限公司 符号化程序运行日志的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246964A1 (en) * 2010-04-02 2011-10-06 Apple Inc. Archiving a Build Product
CN104516732A (zh) * 2013-09-29 2015-04-15 北京新媒传信科技有限公司 一种应用程序崩溃报告方法和系统
CN104794046A (zh) * 2014-01-21 2015-07-22 腾讯科技(深圳)有限公司 符号化程序运行日志的方法和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391762A (zh) * 2017-08-28 2017-11-24 京信通信系统(中国)有限公司 日志数据的处理方法及装置
CN107391762B (zh) * 2017-08-28 2021-02-05 京信通信系统(中国)有限公司 日志数据的处理方法及装置
CN109240917A (zh) * 2018-08-13 2019-01-18 山东中创软件工程股份有限公司 一种日志管理方法及相关装置
CN112100018A (zh) * 2019-06-17 2020-12-18 腾讯科技(深圳)有限公司 一种日志信息生成的方法及相关装置
CN112100018B (zh) * 2019-06-17 2023-10-13 腾讯科技(深圳)有限公司 一种日志信息生成的方法及相关装置
CN110764945A (zh) * 2019-10-23 2020-02-07 北京博睿宏远数据科技股份有限公司 一种崩溃日志处理方法、装置、设备和存储介质
CN110764945B (zh) * 2019-10-23 2023-06-30 北京博睿宏远数据科技股份有限公司 一种崩溃日志处理方法、装置、设备和存储介质
CN111638991A (zh) * 2020-06-05 2020-09-08 贝壳技术有限公司 用于解析崩溃文件的方法与系统
CN111638991B (zh) * 2020-06-05 2023-09-19 贝壳技术有限公司 用于解析崩溃文件的方法与系统
WO2022247442A1 (zh) * 2021-05-24 2022-12-01 北京字节跳动网络技术有限公司 符号解析方法、装置、设备及存储介质
WO2023197851A1 (zh) * 2022-04-14 2023-10-19 北京字节跳动网络技术有限公司 异常组件的识别方法、装置、设备、存储介质及程序产品
CN116662045A (zh) * 2022-11-18 2023-08-29 荣耀终端有限公司 进程名称获取方法、终端设备及存储介质

Also Published As

Publication number Publication date
CN106547782B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN106547782A (zh) 日志信息的获取方法及装置
US8261241B2 (en) Converting format strings to regular expressions
CN104679495B (zh) 软件识别方法及装置
WO2020206837A1 (zh) 代码片段定位方法、装置、计算机设备和存储介质
CN105335137A (zh) 用于处理源文件的方法和装置
CN109145235B (zh) 用于解析网页的方法、装置及电子设备
CN104572463A (zh) 测试接口信息的方法及装置
CN104765635B (zh) 一种核对apk内多国语言的方法及其系统
CN108052327A (zh) 一种内核模块编译、加载方法及装置
WO2017107808A1 (zh) 针对混淆脚本语言的定位方法和系统
CN108197440A (zh) 一种代码混淆方法、设备及计算机可读存储介质
CN103761095B (zh) 一种生成通用的升级文件头部数据信息的方法
CN105824647A (zh) 一种表单页面生成方法和装置
CN111045654A (zh) 基于Vue快速生成常用指令的方法、装置、计算机设备及存储介质
CN109509467B (zh) 代码生成方法及装置
CN102591859B (zh) 一种重用行业标准格式文件的方法及相关装置
EP2535813A1 (en) Method and device for generating an alert during an analysis of performance of a computer application
CN106778301A (zh) 基于cocos2d‑x的可靠的跨平台数据存储方法及系统
CN112800078A (zh) 基于javascript的轻量级文本标注方法、系统、设备及存储介质
CN112181486A (zh) 一种数据处理的方法、装置和存储介质
CN116166617B (zh) 开放版式文档ofd合并后的目录生成方法及装置
CN112148581A (zh) 代码规范检查方法、装置、系统及存储介质
CN110716746B (zh) 将rn样式代码转换为小程序样式代码的方法及装置
US20240004620A1 (en) Automated generation of web applications based on wireframe metadata generated from user requirements
CN109739506B (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
TR01 Transfer of patent right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right