CN113312485B - 日志自动化分类方法及装置、计算机可读存储介质 - Google Patents
日志自动化分类方法及装置、计算机可读存储介质 Download PDFInfo
- Publication number
- CN113312485B CN113312485B CN202110714831.5A CN202110714831A CN113312485B CN 113312485 B CN113312485 B CN 113312485B CN 202110714831 A CN202110714831 A CN 202110714831A CN 113312485 B CN113312485 B CN 113312485B
- Authority
- CN
- China
- Prior art keywords
- log
- features
- classification model
- preset
- code 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.)
- Active
Links
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- 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
-
- 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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
一种日志自动化分类方法及装置、计算机可读存储介质,所述方法包括:加载待处理日志;根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。通过本发明方案能够实现全自动化的日志分类,且分类准确率高,利于提高研发和测试人员的日志分析效率。
Description
技术领域
本发明涉及应用程序测试技术领域,具体地涉及一种日志自动化分类方法及装置、计算机可读存储介质。
背景技术
安卓(Android)日志(以下简称日志)可以展示应用程序运行的状态、事件和异常等信息,方便研发和测试人员进行应用程序调试和问题分析。现阶段,安卓设备导出的日志都是以固定的格式明文存储在一起的,导致无法区分其中的某一条日志归属于哪个应用程序(Application,简称APP)或哪个软件模块或哪个代码文件。
目前的惯常做法是,研发和测试人员根据关键字在打印日志中进行查找和定位以人工完成日志分类,费时费力且容易出错。并且,由于研发人员在写安卓代码时,日志打印的代码书写可能不规范,还有就是不同的分支或软件版本打印日志代码会有所区别,这些问题都会导致现有人工日志分析效率低下。例如,如果某个软件版本的打印日志代码变更但又未通知到相关人员,则后续日志分类时关键字搜索就会失效。
发明内容
本发明解决的技术问题是现有日志分类依赖人工进行,效率低且容易出错。
为解决上述技术问题,本发明实施例提供一种日志自动化分类方法,包括:加载待处理日志;根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。
可选的,所述根据日志函数的参数信息从所述待处理日志中提取日志特征包括:根据所述日志函数的日志函数名和函数入参规则,从所述待处理日志提取得到原始日志特征;对所述原始日志特征进行预处理,以得到所述日志特征。
可选的,所述对所述原始日志特征进行预处理包括:去除所述原始日志特征中的停用词并进行分词操作。
可选的,所述将所述日志特征输入预设分类模型包括:获取预设特征词典,其中,所述预设特征词典包括日志特征与特征向量的映射关系;根据所述预设特征词典将所述日志特征转化为对应的特征向量;将转化得到的特征向量输入所述预设分类模型。
可选的,加载所述待处理日志的动作在客户端执行,所述预设特征词典和预设分类模型存储于服务端,所述客户端与所述服务端相通信。
可选的,所述方法还包括:自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志;对于每条样本日志,根据日志函数的参数信息从所述样本日志中提取日志特征;基于所述多条样本日志各自的日志特征以及提取得到所述样本日志的代码文件所对应的目标类别生成样本集;基于所述样本集训练得到所述预设分类模型。
可选的,所述自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志的动作,是定期执行的,和/或,是在所述代码文件的分支或版本发生变化时执行的。
可选的,所述自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志包括:读取配置信息,其中,所述配置信息包括至少一个目标类别及对应的代码目录;遍历所述配置信息中的代码目录以爬取得到所述至少一个目标类别对应的代码文件;对于每一代码文件,从所述代码文件中提取打印日志语句以得到所述样本日志。
可选的,所述从所述代码文件中提取打印日志语句以得到所述样本日志包括:根据预设正则表达式从所述代码文件中爬取所述打印日志语句,以得到所述样本日志,其中,所述预设正则表达式用于匹配所述代码文件中含有日志相关字符的正则对象。
可选的,所述待处理日志导出自安卓测试终端。
可选的,所述预设分类模型与生成日志的代码文件的版本或分支相关联,在将所述日志特征输入预设分类模型之前,所述方法还包括:根据可能生成所述待处理日志的代码文件的版本或分支获取对应的预设分类模型。
可选的,所述类别包括多个层级,不同的层级对应不同的预设分类模型,在将所述日志特征输入预设分类模型之前,所述方法还包括:根据待分类的所述类别的层级确定对应的预设分类模型。
可选的,所述层级选自:应用程序、软件模块以及代码文件。
可选的,所述预设分类模型为LSTM模型。
为解决上述技术问题,本发明实施例还提供一种日志自动化分类装置,包括:加载模块,用于加载待处理日志;提取模块,用于根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;分类模块,用于将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。
为解决上述技术问题,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。
为解决上述技术问题,本发明实施例还提供一种日志自动化分类装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例提供一种日志自动化分类方法,包括:加载待处理日志;根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。较之现有人工进行日志分类的方式,本实施方案能够实现全自动化的日志分类,且分类准确率高,利于提高研发和测试人员的日志分析效率。具体而言,从获取待处理日志开始即由计算机自动进行,对加载的待处理日志进行特征提取后,使用预设分类模型对其所属类别进行预测。对待处理日志进行分类的全过程无需人工参与,避免人为因素对分类结果的干扰,预设分类模型的分类准确率高,从而针对安卓日志实现更精准的分类,提高研发和测试人员的日志分析效率,降低运营成本。
进一步,所述方法还包括:自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志;对于每条样本日志,根据日志函数的参数信息从所述样本日志中提取日志特征;基于所述多条样本日志各自的日志特征以及提取得到所述样本日志的代码文件所对应的目标类别生成样本集;基于所述样本集训练得到所述预设分类模型。由此,无需人工制作样本,实现全自动化建模。
附图说明
图1是本发明实施例一种日志自动化分类方法的流程图;
图2是本发明实施例一种预设分类模型的建模方法的流程图;
图3是本发明实施例一个典型应用场景的建模流程图;
图4是本发明实施例一个典型应用场景的模型预测流程图;
图5是本发明实施例一种日志自动化分类装置的结构示意图。
具体实施方式
如背景技术所言,目前仍依赖人工实现安卓日志分类,效率低且容易出错。
具体而言,安卓设备导出的日志(log)文件有多个类型,比如系统日志(systemlog),事件日志(event log)、主日志(main log)和无线射频日志(radio log)等。其中,无线射频日志是记录无线装置或电话相关消息的日志,标签(tag)为"HTC_RIL"、"RILJ"、"RILC"、"RILD"、"RIL"、"AT"、"GSM"和"STK"等的日志信息属于该类型;系统日志记录低等级系统信息和调试(debugging),为了防止主缓存区溢出而从中分离出来;事件日志是记录已经解释的二进制系统事件的日志;主日志是记录所有java层的日志,但不包括无线射频日志、系统日志和事件日志。
现有的日志分类方法是通过安卓日志中的日志级别、日志标签等信息人工进行过滤和分类。但是,该分类还不够精确,无法获取日志是所属哪个APP或软件模块打印的。
为解决上述技术问题,本发明实施例提供一种日志自动化分类方法,包括:加载待处理日志;根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。
本实施方案能够实现全自动化的日志分类,且分类准确率高,利于提高研发和测试人员的日志分析效率。具体而言,从获取待处理日志开始即由计算机自动进行,对加载的待处理日志进行特征提取后,使用预设分类模型对其所属类别进行预测。对待处理日志进行分类的全过程无需人工参与,避免人为因素对分类结果的干扰,预设分类模型的分类准确率高,从而针对安卓日志实现更精准的分类,提高研发和测试人员的日志分析效率,降低运营成本。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例一种日志自动化分类方法的流程图。
本实施方案可以由终端执行,所述终端可以是专门进行应用程序测试的测试机,也可以是面向市场销售的商用机。具体而言,所述终端上可以加载有需要进行分类的日志(以下称为待处理日志)。通过执行本实施方案,终端可以自动化地对加载的所述待处理日志进行分类,并输出类别预测结果。
所述待处理日志导出自安卓测试终端,如在安卓测试终端上运行打印日志函数而导出得到的。所述安卓测试终端可以为研发和测试人员需要测试、调试的安装有安卓操作系统的终端设备。通过执行本实施方案,能够对从安卓测试终端上导出的日志进行分类以确定各条日志归属的应用程序(或软件模块或代码文件)。根据对日志的自动分类结果,研发、测试人员能够快速定位到安卓测试终端上需要调制、分析的应用程序对应的日志,从而以更为高效地方式调试、分析安卓测试终端上的特定应用程序的运行情况。
所述安卓测试终端和执行本实施方案的终端可以为同一终端。或者,两者可以为相独立的,执行本实施方案的终端可以加载多个安卓测试终端的日志,以批量化、自动化地对多个安卓测试终端的日志进行分类。
在安卓代码层面,应用程序可以包括一个或多个软件模块,其中每一软件模块下可以设置一个或多个代码文件。采用本实施方案,能够自动化预测待处理日志属于安卓测试终端安装的多个应用程序中的哪一个应用程序,和/或进一步细化到应用程序的哪一个软件模块,和/或更进一步细化到属于应用程序的哪一个代码文件。
为便于表述,本实施方案将应用程序、软件模块和代码文件记作不同层级的类别,也即,本实施方案可以按所需层级分类待处理日志。如根据需要预测待处理日志属于哪一应用程序、哪一软件模块和/或哪一代码文件。
具体地,参考图1,本实施例所述日志自动化分类方法可以包括如下步骤:
步骤S101,加载待处理日志;
步骤S102,根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;
步骤S103,将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。
进一步,继续参考图2,本实施例所述方法还可以包括如下步骤:
步骤S201,自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志;
步骤S202,对于每条样本日志,根据日志函数的参数信息从所述样本日志中提取日志特征;
步骤S203,基于所述多条样本日志各自的日志特征以及提取得到所述样本日志的代码文件所对应的目标类别生成样本集;
步骤S204,基于所述样本集训练得到所述预设分类模型。
在具体实施中,图2所示步骤S201~步骤S204可以视为预设分类模型的建模流程,图1所示步骤S101~步骤S103可以视为基于图2所示方法建模得到的预设分类模型进行的类别预测流程(即自动化分类流程)。
在具体实施中,图2所示步骤S201~步骤S204所提供的建模方法可以由安装服务端(Server,也称服务器端)的终端中具有建模功能的芯片执行,也可以由安装服务端的终端中的基带芯片执行。图1所示步骤S101~步骤S103所提供的日志自动化分类方法可以由安装客户端(Client)的终端中具有日志分类功能的芯片执行,也可以由安装客户端的终端中的基带芯片执行。
所述安装客户端的终端即前述执行本实施方案的终端,所述安装服务端的终端可以是提供应用程序测试服务的后台服务器或高性能个人计算机(Personal Computer,简称PC)。安装客户端的终端可以与安装服务端的终端相通信,以从安装服务端的终端处获取建模得到的预设分类模型。
在一个具体实施中,目标类别可以是预配置的应用程序和/或软件模块,如安装客户端的终端上安装的应用程序,或安装的应用程序中的特定软件模块。
相应的,步骤S201可以包括步骤:读取配置信息,其中,所述配置信息包括至少一个目标类别及对应的代码目录;遍历所述配置信息中的代码目录以爬取得到所述至少一个目标类别对应的代码文件;对于每一代码文件,从所述代码文件中提取打印日志语句以得到所述样本日志。
具体而言,结合图2和图3,配置信息中的代码目录可以指示需要爬取的安卓代码的代码路径。所述安卓代码可以提前下载到写有所述预设分类模型的代码所在的本地机器(如安装服务端的终端),或通过OpenGrok在线代码网页进行爬取。
进一步,可以遍历代码目录中所有的子目录和文件,以生成目录和文件树。其中,如果叶节点是目录,则该节点包含目录路径、子节点列表等;如果叶节点是文件,则该节点包含文件路径、文件名等信息。所述目录和文件树中的文件节点指向的代码文件即为所述至少一个目标类别对应的代码文件。
例如配置信息可以包括,目标类别:用程序DreamCamera2和对应的代码目录:\vendor\sprd\platform\packages\apps\DreamCamera2\。其中,根目录是写死的,因此可以不需要在配置信息中配置。
进一步,可以根据预设正则表达式从所述代码文件中爬取所述打印日志语句,以得到所述样本日志,其中,所述预设正则表达式用于匹配所述代码文件中含有日志相关字符的正则对象。
例如,根据目录和文件树中的文件节点,可以通过预设正则表达式log_pattern=re.compile("Log\.([^;]+);\s*\n")爬取文件节点所指向代码文件中的打印日志语句。其中,所述预设正则表达式用于匹配代码文件中带"Log."(表示log函数的字符)和";\n"(表示回车字符)的正则对象,也即匹配代码文件中以"Log."开头并以";\n"结尾的代码语句。
进一步,配置信息中还可以配置代码文件类型。比如,指定Java文件为代码文件,其他类型文件可以忽略。
进一步,安卓日志通常是通过Log.x接口打印日志的,x为日志级别。以如下日志为例:
Log.Tag TAG="CamSet";
Log.i(TAG,"Attempt to change preview size while locked");
上述日志示例中,TAG为所述日志标签,其内容为“CamSet”,该变量为Log.i函数(指示打印日志级别为I的日志)的第一个参数;Log.i函数的第二个参数是日志信息,即上述日志示例中的"Attempt to change preview size while locked"。
其中,日志级别(log-level)可以定义日志输出优先级。所述日志级别可以包括:V:详细(最低优先级)、D:调试、I:信息、W:警告、E:错误、F:严重和S:静默(最高优先级,未曾输出过任何内容)。
进一步,可以根据所述日志函数的日志(log)函数名和函数入参规则,从所述待处理日志提取得到原始日志特征,即提取出样本日志中的日志级别、日志标签(tag)和日志信息(tag values)。这些原始日志特征即为图3中所述的提取日志数据。日志标签可以描述日志归类,如该条日志所属软件模块、代码文件。日志信息用于描述应用程序的运行情况。
日志函数(如Log.i函数)的第一个参数通常为日志标签,第二个参数通常为消息字串(也就是日志信息),具体可参考上述日志示例。这三者即为所述原始日志特征(也即图3所述的遍历所有安卓代码文件提取得到的日志数据)。
进一步,对所述原始日志特征进行预处理,以得到步骤S202中的日志特征。预处理可以包括,去除所述原始日志特征中的停用词(Stop Words)并进行分词操作。
例如,可以从原始日志特征中去除标点符号、数字等非规范化的字符或单词,然后进行分词操作后,最终得到的日志级别、日志标签和日志信息组成的字串内容作为步骤S202提取得到的日志特征。
进一步,结合图2和图3,在执行步骤S202以提取得到日志特征后,可以将样本日志的日志特征以及提取出该条样本日志的代码文件所对应的目标类别一一对应起来,从而得到步骤S203所述样本集,对应图3示出的模型数据集制作步骤)。
进一步,根据步骤S202得到的日志特征,还可以制作用于分类器(即预设分类模型)的数据特征词典(也可称为预设特征词典)并保存在安装服务端的终端本地。所述预设特征词典包括日志特征与特征向量的映射关系。通过预设特征词典,可以将字符串形式的日志特征转化成数字化的特征向量。特征向量作为预设分类模型的输入。
进一步,在步骤S204中,可以使用独热(one-hot)编码将至少一个目标类别转化成标签,以作为预设分类模型的输出。例如,标签DreamCamera2和NewGallery2分别对应“0 1”和“1 0”。
进一步,继续结合图2和图3,在步骤S204中,可以使用长短期记忆网络(LongShort-Term Memory,简称LSTM)构建针对特定层级的类别的预设分类模型,并使用样本集中的大部分样本进行训练,抽取样本集中的小部分样本进行验证。当训练得到的预设分类模型的准确率到达预设阈值且损失值低于预设条件时停止训练,并保存模型。最终得到的预设分类模型可以存储于安装服务端的终端本地。
不同的层级对应不同的预设分类模型,不同的预设分类模型可以复用所述样本集。例如,样本集中的单条日志特征可以对应目标应用程序、目标软件模块和目标代码文件。用于分类应用程序的预设分类模型,在训练时可以从样本集中提取特征日志及对应目标应用程序进行训练,这样训练得到的预设分类模型可以预测日志所属应用程序。又例如,用于分类软件模块的预设分类模型,在训练时可以从样本集中提取特征日志及对应目标软件模块进行训练,这样训练得到的预设分类模型可以预测日志所属软件模块。
采用LSTM网络构建的预设分类模型的输入是固定长度,即是日志级别、日志标签和日志信息这三个日志特征的特征向量的相加结果。其中,如果相加后的特征向量长度小于固定长度,则在末尾补0;如果相加后的特征向量长度超过固定长度,则截取固定长度的特征向量作为预设分类模型的输入。
本申请发明人经过分析发现,LSTM网络对数据时序有很好的记忆功能,很适合用于本实施方案中应用程序/软件模块/代码文件分类器对打印日志的预测。尤其是对于包含完全相同的字符但字符的排列顺序不同的两条特征日志,LSTM网络能够有效区分出这种情形,从而使得基于LSTM网络构建的预设分类模型具有良好的预测准确度。
所述预设分类模型的LSTM网络可以包含多个隐藏层,使用softmax作为激活函数,使用交叉熵损失函数,使用Adam或RMSProp作为优化函数。
样本集可以划分成训练样本集合验证样本集两部分,其中训练样本集用来估计模型,验证样本集用来确定模型的网络结构或者控制模型复杂程度的参数。
训练时可以按批次进行,一批次有多个样本并基本包含了大部分或所有目标类别。多次批次训练后,再使用验证样本集进行预测准确率确认。预设准确率的阈值和损失值条件可以是通过多次模型训练调整所得。
在一个具体实施中,继续结合图2和图3,在步骤S202提取得到日志特征之后,可以输出爬取数据报告。输出的爬取数据报告可以存储在安装服务端的终端本地,如以excel格式保存。爬取数据报告可以采用邮件(mail)形式发送。爬取数据报告可以包括,爬取到的文件和目录树、应用程序活动(app activity)、爬取到的代码文件、从代码文件中提取的样本日志和对应的日志特征。
在一个具体实施中,步骤S201所述自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志的动作,可以是定期执行的。如每周执行一次自动化建模流程。
或者,步骤S201所述自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志的动作,可以是在所述代码文件的分支或版本发生变化时执行的。
例如,安装服务端的终端可以根据不同的分支或软件版本的代码,定期自动进行日志特征的获取、处理和模型训练,并将训练好的模型和预设特征词典存放到本地的指定路径下。相应的,安装客户端的终端获取服务器存储的预设分类模型和预设特征词典,先对真实日志信息(即待处理日志)进行提取特征和数据处理,然后使用预设特征词典将其转化成数字化的特征向量,最后使用预设分类模型对其进行预测。
进一步,应用程序或软件模块的分类以及对应的代码目录路径可预先配置。代码文件的分类可以是在爬取代码中的日志时自动获取的。
在一个具体实施中,结合图1和图4,步骤S101所述加载待处理日志的动作对应图4中加载真实日志步骤。
具体地,可以实时地从安卓测试终端中导出待处理日志。或者,待处理日志可以是预先从安卓测试终端上导出,并在执行步骤S101时批量加载到安装客户端的终端的。
在步骤S101之前/之后/同时,可以从服务器加载建模过程保存的预设特征词典和预设分类模型。
所述预设分类模型可以与生成日志的代码文件的版本或分支相关联。相应的,在步骤S103之前(或在步骤S101之前/之后/同时),本实施例所述方法还可以包括步骤:根据可能生成所述待处理日志的代码文件的版本或分支获取对应的预设分类模型。例如,安装客户端的终端可以根据代码文件的版本或分支从服务器的终端下载对应的预设分类模型。
进一步,在步骤S103之前(或在步骤S101之前/之后/同时),本实施例所述方法还可以包括步骤:根据待分类的所述类别的层级确定对应的预设分类模型。例如,安装客户端的终端可以根据需要分类的具体层级从安装服务端的终端下载对应的预设分类模型。
以需要分类待处理日志为相册应用程序还是照相应用程序为例,安装客户端的终端可以从安装服务端的终端下载类别层级为应用程序、代码分支或版本与导出该待处理日志的安卓测试终端相应的预设分类模型进行预测。
进一步,代码文件的版本或分支可以为安卓测试终端的系统版本或分支。
进一步,在步骤S101加载得到待处理日志后,可以继续执行步骤S102,以提取待处理日志中的日志特征。
例如,可以根据所述日志函数的日志函数名和函数入参规则,从所述待处理日志提取得到原始日志特征。然后对所述原始日志特征进行预处理,以得到所述日志特征。
可选的,所述对所述原始日志特征进行预处理的过程可以包括:去除所述原始日志特征中的停用词并进行分词操作。
进一步,继续结合图1和图4,在步骤S103中,可以根据所述预设特征词典将所述日志特征转化为对应的特征向量,然后将转化得到的特征向量输入所述预设分类模型进行模型预测,从获取预设分类模型输出的预测结果。
由上,在本实施方案中,爬取安卓代码中的打印日志语句,然后根据预设规则提取得到其中的日志特征并制作成样本,使用样本训练预设分类模型,最后通过预设分类模型对真实打印日志进行分类预测。
以相机和相册两个应用程序为例,基于本实施方案,首先训练一个应用程序分类模型。具体而言,可以针对这两个应用程序各自对应的代码文件爬取所有日志数据作为样本日志。保存在安装服务端的终端本地的爬取数据报告可以包括“logs”工作表以记录日志级别、日志标签、日志信息、以及代码文件;还可以包括“features”工作表以记录日志级别、日志标签和日志信息的所有日志特征。
这些数据可作为应用程序分类模型的样本的原始数据,所述样本包括特征向量和标签。特征向量是数字化的,需要将字符串形式的日志特征通过预设特征词典转化成对应的数字特征向量。标签为one-hot编码向量,如标签DreamCamera2和NewGallery2分别对应“0 1”和“1 0”。
原始数据经过数据处理(去停用词、分词、矢量化等)后制作成样本。使用样本进行训练,并保存训练得到的应用程序分类模型。
客户端从服务器加载应用程序分类模型和预设特征词典后,即可使用应用程序分类模型对真实日志进行预测。
在本实施例的一个变化例中,通过合理设计样本,同一预设分类模型可以被训练为同时输出多个层级的类别预测结果,如预设分类模型输出的标签可以表示该待处理日志属于哪一应用程序,以及该应用程序的哪一代码文件。
由上,采用本实施方案,能够实现全自动化的日志分类,且分类准确率高,利于提高研发和测试人员的日志分析效率。具体而言,从获取待处理日志开始即由计算机自动进行,对加载的待处理日志进行特征提取后,使用预设分类模型对其所属类别进行预测。对待处理日志进行分类的全过程无需人工参与,避免人为因素对分类结果的干扰,预设分类模型的分类准确率高,从而针对安卓日志实现更精准的分类,提高研发和测试人员的日志分析效率,降低运营成本。
进一步,从样本日志的爬取开始就是自动化进行的,无需人工制作样本,实现全自动化建模。
图5是本发明实施例一种日志自动化分类装置的结构示意图。本领域技术人员理解,本实施例所述日志自动化分类装置可以用于实施上述图1和图4所述实施例中所述的方法技术方案。
具体地,参考图5,本实施例所述日志自动化分类装置5可以包括:加载模块51,用于加载待处理日志;提取模块52,用于根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;分类模块53,用于将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别。
关于所述日志自动化分类装置的工作原理、工作方式的更多内容,可以参照上述图1和图4中的相关描述,这里不再赘述。
在具体实施中,上述的日志自动化分类装置可以对应于终端中具有日志分类功能的芯片,或者对应于具有数据处理功能的芯片,例如片上系统(System-On-a-Chip,简称SOC)、基带芯片等;或者对应于终端中包括具有日志分类功能芯片的芯片模组;或者对应于具有数据处理功能芯片的芯片模组,或者对应于终端。
在具体实施中,关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。
例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一实施例提供的日志自动化分类方法的步骤。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
本发明实施例还提供了另一种日志自动化分类装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图1至图4对应实施例所提供的日志自动化分类方法的步骤。所述日志自动化分类装置可以为终端。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (16)
1.一种日志自动化分类方法,其特征在于,包括:
加载待处理日志;
根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;
将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别;
其中,所述根据日志函数的参数信息从所述待处理日志中提取日志特征包括:
根据所述日志函数的日志函数名和函数入参规则,从所述待处理日志提取得到原始日志特征;
对所述原始日志特征进行预处理,以得到所述日志特征。
2.根据权利要求1所述的方法,其特征在于,所述对所述原始日志特征进行预处理包括:去除所述原始日志特征中的停用词并进行分词操作。
3.根据权利要求1所述的方法,其特征在于,所述将所述日志特征输入预设分类模型包括:
获取预设特征词典,其中,所述预设特征词典包括日志特征与特征向量的映射关系;
根据所述预设特征词典将所述日志特征转化为对应的特征向量;
将转化得到的特征向量输入所述预设分类模型。
4.根据权利要求3所述的方法,其特征在于,加载所述待处理日志的动作在客户端执行,所述预设特征词典和预设分类模型存储于服务端,所述客户端与所述服务端相通信。
5.根据权利要求1所述的方法,其特征在于,还包括:
自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志;对于每条样本日志,根据日志函数的参数信息从所述样本日志中提取日志特征;
基于所述多条样本日志各自的日志特征以及提取得到所述样本日志的代码文件所对应的目标类别生成样本集;
基于所述样本集训练得到所述预设分类模型。
6.根据权利要求5所述的方法,其特征在于,所述自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志的动作,是定期执行的,和/或,是在所述代码文件的分支或版本发生变化时执行的。
7.根据权利要求5所述的方法,其特征在于,所述自动化地从至少一个目标类别对应的代码文件中提取得到多条样本日志包括:
读取配置信息,其中,所述配置信息包括至少一个目标类别及对应的代码目录;
遍历所述配置信息中的代码目录以爬取得到所述至少一个目标类别对应的代码文件;
对于每一代码文件,从所述代码文件中提取打印日志语句以得到所述样本日志。
8.根据权利要求7所述的方法,其特征在于,所述从所述代码文件中提取打印日志语句以得到所述样本日志包括:
根据预设正则表达式从所述代码文件中爬取所述打印日志语句,以得到所述样本日志,其中,所述预设正则表达式用于匹配所述代码文件中含有日志相关字符的正则对象。
9.根据权利要求1所述的方法,其特征在于,所述待处理日志导出自安卓测试终端。
10.根据权利要求1所述的方法,其特征在于,所述预设分类模型与生成日志的代码文件的版本或分支相关联,在将所述日志特征输入预设分类模型之前,还包括:
根据可能生成所述待处理日志的代码文件的版本或分支获取对应的预设分类模型。
11.根据权利要求1所述的方法,其特征在于,所述类别包括多个层级,不同的层级对应不同的预设分类模型,在将所述日志特征输入预设分类模型之前,还包括:
根据待分类的所述类别的层级确定对应的预设分类模型。
12.根据权利要求11所述的方法,其特征在于,所述层级选自:应用程序、软件模块以及代码文件。
13.根据权利要求1所述的方法,其特征在于,所述预设分类模型为LSTM模型。
14.一种日志自动化分类装置,其特征在于,包括:
加载模块,用于加载待处理日志;
提取模块,用于根据日志函数的参数信息从所述待处理日志中提取日志特征,其中,所述日志特征包括日志级别、日志标签和日志信息;
分类模块,用于将所述日志特征输入预设分类模型,并接收所述预设分类模型输出的类别预测结果,其中,所述预设分类模型用于根据输入的日志特征预测日志所属类别;
其中,所述提取模块执行如下步骤:
根据所述日志函数的日志函数名和函数入参规则,从所述待处理日志提取得到原始日志特征;
对所述原始日志特征进行预处理,以得到所述日志特征。
15.一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至13中任一项所述方法的步骤。
16.一种日志自动化分类装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至13中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714831.5A CN113312485B (zh) | 2021-06-25 | 2021-06-25 | 日志自动化分类方法及装置、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714831.5A CN113312485B (zh) | 2021-06-25 | 2021-06-25 | 日志自动化分类方法及装置、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113312485A CN113312485A (zh) | 2021-08-27 |
CN113312485B true CN113312485B (zh) | 2022-11-29 |
Family
ID=77380496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110714831.5A Active CN113312485B (zh) | 2021-06-25 | 2021-06-25 | 日志自动化分类方法及装置、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312485B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230188549A1 (en) * | 2021-12-13 | 2023-06-15 | International Business Machines Corporation | Revealing rare and anomalous events in system automation logs |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013128789A1 (ja) * | 2012-03-02 | 2013-09-06 | 日本電気株式会社 | キャパシティ管理支援装置、キャパシティ管理方法およびプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685374B (zh) * | 2019-10-17 | 2023-04-11 | 中国移动通信集团浙江有限公司 | 日志分类方法、装置及电子设备 |
CN110806962B (zh) * | 2019-11-06 | 2021-04-16 | 星环信息科技(上海)股份有限公司 | 日志级别的预测方法、设备及存储介质 |
-
2021
- 2021-06-25 CN CN202110714831.5A patent/CN113312485B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013128789A1 (ja) * | 2012-03-02 | 2013-09-06 | 日本電気株式会社 | キャパシティ管理支援装置、キャパシティ管理方法およびプログラム |
Non-Patent Citations (1)
Title |
---|
分布式系统中的日志分析及应用;陆杰等;《高技术通讯》;20190415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113312485A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112597373B (zh) | 一种基于分布式爬虫引擎的数据采集方法 | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
CN109635292B (zh) | 基于机器学习算法的工单质检方法和装置 | |
CN111460250A (zh) | 用于画像的数据的清洗方法、装置、介质及电子设备 | |
CN109872230B (zh) | 金融数据分析系统的测试方法、装置、介质、电子设备 | |
CN110580308A (zh) | 信息审核方法及装置、电子设备、存储介质 | |
CN109285024B (zh) | 在线特征确定方法、装置、电子设备及存储介质 | |
CN111831920A (zh) | 用户需求分析方法、装置、计算机设备及存储介质 | |
CN113312485B (zh) | 日志自动化分类方法及装置、计算机可读存储介质 | |
CN111860981A (zh) | 一种基于lstm深度学习的企业国民行业类别预测方法及系统 | |
CN104933096B (zh) | 数据库的异常键识别方法、装置与数据系统 | |
Fischbach et al. | Cira: A tool for the automatic detection of causal relationships in requirements artifacts | |
CN114003692A (zh) | 合同文本信息的处理方法、装置、计算机设备及存储介质 | |
CN117194255A (zh) | 测试数据维护方法、装置、设备及存储介质 | |
CN116383742A (zh) | 基于特征分类的规则链设置处理方法、系统及介质 | |
CN115344504B (zh) | 基于需求规格说明书的软件测试用例自动生成方法及工具 | |
CN115618355A (zh) | 注入攻击结果判定方法、装置、设备及存储介质 | |
CN115470034A (zh) | 一种日志分析方法、设备及存储介质 | |
CN114880239A (zh) | 一种基于数据驱动的接口自动化测试框架及方法 | |
US11844134B1 (en) | Cell site repair part prediction machine learning system | |
CN110083807B (zh) | 合同的修改影响自动预测方法、装置、介质及电子设备 | |
CN111580856A (zh) | 针对mips架构的物联网设备组件版本信息提取方法 | |
CN115640758B (zh) | 一种基于知识构建的三维模型数模质检方法 | |
CN114253867B (zh) | 基于神经网络模型的自动化测试方法、装置及系统 | |
CN115098337A (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 |