CN110806962B - 日志级别的预测方法、设备及存储介质 - Google Patents

日志级别的预测方法、设备及存储介质 Download PDF

Info

Publication number
CN110806962B
CN110806962B CN201911077292.8A CN201911077292A CN110806962B CN 110806962 B CN110806962 B CN 110806962B CN 201911077292 A CN201911077292 A CN 201911077292A CN 110806962 B CN110806962 B CN 110806962B
Authority
CN
China
Prior art keywords
log
statement
code block
level
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
Application number
CN201911077292.8A
Other languages
English (en)
Other versions
CN110806962A (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.)
Transwarp Technology Shanghai Co Ltd
Original Assignee
Transwarp Technology Shanghai Co 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 Transwarp Technology Shanghai Co Ltd filed Critical Transwarp Technology Shanghai Co Ltd
Priority to CN201911077292.8A priority Critical patent/CN110806962B/zh
Publication of CN110806962A publication Critical patent/CN110806962A/zh
Application granted granted Critical
Publication of CN110806962B publication Critical patent/CN110806962B/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/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种日志级别的预测方法、设备及存储介质。该方法包括:获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;根据日志级别在代码块中***日志记录语句。本发明实施例可以实现对待***日志记录语句进行日志级别预测,减少日志级别的决策时间,提高开发效率。

Description

日志级别的预测方法、设备及存储介质
技术领域
本发明实施例涉及日志记录技术领域,尤其涉及一种日志级别的预测方法、设备及存储介质。
背景技术
日志记录语句由于具有捕获和记录***运行时信息的能力,已经成为软件***遇到故障时分析问题原因的主要信息来源。恰当地在软件代码中***日志记录语句已成为开发人员日常工作中的一部分。
现有的日志框架和工具都要求为每个日志记录语句分配一个用来描述记录信息详细程度的日志级别,如果一个日志记录语句被分配了不合适的级别,可能会导致本该记录的信息没有被储存下来,使得后续的日志分析等工作缺失了关键性信息。现有技术中,为了权衡内容足够的大量日志所带来的益处和所消耗的成本,开发人员只能依赖自己的开发经验和领域知识来决策日志记录语句的级别,导致在频繁***日志记录语句时,往往需要花费大量的时间和精力,降低了开发效率。
发明内容
本发明实施例提供一种日志级别的预测方法、设备及存储介质,以实现对待***日志记录语句进行日志级别预测,减少日志级别的决策时间,提高开发效率。
第一方面,本发明实施例提供了一种日志级别的预测方法,包括:
获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;
根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;
根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;
根据日志级别在代码块中***日志记录语句。
第二方面,本发明实施例还提供了还提供了一种日志级别的预测装置,包括:
代码块获取模块,用于获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;
特征获取模块,用于根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;
级别确定模块,用于根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;
日志语句***模块,用于根据日志级别在代码块中***日志记录语句。
第三方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,存储器用于存储指令,当指令执行时使得处理器执行以下操作:
获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;
根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;
根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;
根据日志级别在代码块中***日志记录语句。
第四方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机指令,计算机指令用于执行:
获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;
根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;
根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;
根据日志级别在代码块中***日志记录语句。
本发明实施例的技术方案,通过获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;根据日志级别在代码块中***日志记录语句,解决了现有技术中只能依赖开发人员的开发经验和领域知识来决策日志记录语句的级别,导致开发效率较低的问题,实现了对待***日志记录语句进行日志级别预测,减少了日志级别的决策时间,提高了开发效率。
附图说明
图1是本发明实施例一中的一种日志级别的预测方法的流程图;
图2a是本发明实施例二中的一种日志级别的预测方法的流程图;
图2b是本发明实施例二中的日志级别的预测流程图;
图2c是本发明实施例二中的数值文本特征的生成示意图;
图3是本发明实施例三中的一种日志级别的预测装置的结构示意图;
图4为本发明实施例四中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本文使用的术语“预设特征模型”中包括预设的26个代码块特征以及文件特征,其中,术语“代码块特征”描述的是日志记录语句所在的代码块的特征,例如,代码块的源代码行SLOC,代码块调用的方法名称等,术语“文件特征”描述的是日志记录语句所在的文件的特征,例如文件中的日志记录语句密度等。本文使用的术语“日志级别”是统一定义的,包括致命级别、错误级别、警告级别、信息级别、调试级别和跟踪级别。
实施例一
图1是本发明实施例一中的一种日志级别的预测方法的流程图,本实施例可适用于对待***日志记录语句进行日志级别预测的情况,该方法可以由日志级别的预测装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。如图1所示,本发明实施例的方法具体包括:
步骤110、获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志。
本实施例中,日志记录语句用于记录信息或者处理一些***运行时遇到的错误,在触发执行后可以形成记录日志。待***日志记录语句的代码块共有10种类型,包括:CatchBlock、TryBlock、IfBlock、SwitchBlock、ForBlock、WhileBlock、DoBlock、MethodBlock、SynchronizedBlock以及ClassBlock。每个代码块中只包括一条用于记录相关信息的日志记录语句,同时由于语法上访问权限的限制,一条日志记录语句只能访问所在代码块内部的变量。
步骤120、根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征。
特征模型中包括预设的26个代码块特征以及文件特征,其中,代码块特征描述的是日志记录语句所在的代码块的特征,由于代码块决定日志记录语句的触发条件,因此,在为日志记录语句选择日志级别时有必要考虑代码块。文件特征描述的是日志记录语句所在的文件的特征,在同一个文件中的日志记录语句往往共享相同的日志记录目的,也可以记录相同的功能信息。
可选的,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征,包括:将代码块以及代码块的所属文件输入至源码分析工具中,得到代码块特征和文件特征。其中,源码分析工具可以是以JaverParser工具包为核心开发的小工具JavaLogExtractor(JLE),JLE可以用于分析源码并且提取特征。
可选的,代码块特征包括:文本内容特征以及句法特征,文本内容特征包括结构特征和其他的一些特征。针对结构特征,考虑到代码块的源代码有清晰的代码结构,因此可以利用源代码的结构特征来提取上下文信息。针对文本内容特征,由于源代码也是文本,提取代码块中所有的文本内容特征,包括方法名、变量名和异常类型等,可以将它们与提取的结构特征结合为全文内容。针对句法特征,由于在遇到***运行时错误时,开发人员通常会通过设置标志、重新抛出异常或返回特殊值等操作来进行处理,因此,为了捕捉这些上下文因素,需要从每个代码块中提取关键的句法特征。
可选的,结构特征至少包括:代码块的源代码行SLOC,代码块调用的方法数目以及代码块中声明的变量数目;文本内容特征至少包括:结构特征,代码块调用的方法名称,代码块中声明的变量名称,代码块的类型以及触发策略类型;句法特征至少包括:是否有throw语句以及是否有返回值;文件特征至少包括:文件中的日志记录语句密度,文件中的日志记录语句平均长度以及文件的类名。
步骤130、根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度。
可选的,日志级别包括:重要性等级依次递减的致命级别、错误级别、警告级别、信息级别、调试级别和跟踪级别;其中,重要性等级越低,记录日志中所记录信息的详细程度越详细。
本实施例中,致命级别是指非常严重的错误事件,可能导致应用程序中止。错误级别是指仍然允许应用程序继续运行的错误事件。警告级别是指潜在的有害情况。信息级别是指信息性消息,这些消息在粗粒度级别高度突出应用程序的进度。调试级别是指对调试应用程序最有用的精细信息事件。跟踪级别是指比“调试”更细粒度的信息事件。
可选的,根据代码块特征和文件特征,预测日志级别,可以包括:预先为各个日志级别设置一个标准特征向量,将待***的日志记录语句的代码块特征和文件特征所对应的特征向量与各级别的特征向量分别进行相似度计算,选择相似度最高的一个日志级别作为待***的日志记录语句的级别。
或者,考虑到代码块特征和文件特征可以分为数字特征、布尔特征和数值文本特征这三种类型,可以预先为每个日志级别设置对应的标准数字特征、标准布尔特征和标准数值文本特征的特征向量,然后分别计算待***的日志记录语句的数值特征、布尔特征和数字文本特征的特征向量,与各级别的标准数字特征、标准布尔特征和标准数值文本特征的特征向量之间的欧氏距离,并对这三种类型的特征对应的欧氏距离进行加权计算,选择加权值最大的日志级别。
可选的,根据代码块特征和文件特征,预测日志级别,包括:将代码块特征和文件特征输入至预先训练的日志级别预测模型中,得到日志级别。
本实施例中,待***日志记录语句的日志级别既可以通过计算特征向量的相似度来确定,或者通过计算各类型特征向量的欧氏距离加权值来确定,也可以根据训练的日志级别预测模型来确定,或者也可以根据其他的方式来确定,本实施例对此不做限制。
步骤140、根据日志级别在代码块中***日志记录语句。
在确定待***的日志记录语句的日志级别后,在对应的代码块中***该日志记录语句,并将其日志级别设置为所确定的日志级别,以进行适当的信息记录。
本发明实施例的技术方案,通过获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;根据日志级别在代码块中***日志记录语句,解决了现有技术中只能依赖开发人员的开发经验和领域知识来决策日志记录语句的级别,导致开发效率较低的问题,实现了对待***日志记录语句进行日志级别预测,减少了日志级别的决策时间,提高了开发效率。
在上述实施例的基础上,可选的,在获取待***日志记录语句的代码块之前,还可以包括:查找训练项目中的日志记录语句,以及包含日志记录语句的代码块;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征;将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型。
这样设置的好处是:可以提供一种通过预测模型就能直接得到日志级别预测结果的方式,并且,该预测模型根据代码块特征和文件特征训练得到的,结合了代码块以及代码块所属的文件对日志级别的影响因素,可以保证日志级别的预测准确度较高。
可选的,在查找训练项目中的日志记录语句,以及包含日志记录语句的代码块之后,还可以包括:获取日志记录语句的日志级别以及贡献者;根据日志记录语句的日志级别以及贡献者,对日志记录语句进行有效性筛选。
这样设置的好处是:进一步保证数据的可靠性,避免数据质量问题所带来的偏差,保证学习到的分类规律来自于高稳定且高质量的有效数据。
可选的,根据日志记录语句的日志级别以及贡献者,对日志记录语句进行有效性筛选,可以通过以下方式实现:如果日志记录语句的贡献者在预设的贡献者列表中,且日志记录语句的日志级别与其输出的日志级别一致,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且贡献者的所有日志记录语句的所属文件的数量大于等于文件数量阈值,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且日志记录语句的所属文件中的日志记录语句数量小于等于语句数量阈值,以及日志记录语句的所属文件中的日志记录语句密度小于等于语句密度阈值,则保留日志记录语句。
可选的,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,还可以包括:对代码块特征中的文本内容特征依次进行驼峰转换处理、小写转换处理、去停用词处理、词干提取和词根化处理以及词频-逆文件频率TF-IDF处理;通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征。
这样设置的好处是:能够除去文本内容特征中的冗余信息,并将文本内容特征转化为数字表示,以解决文本内容特征无法直接输入机器学习模型的问题。
可选的,通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征,可以通过以下方式实现:使用分层随机抽样将经过TF-IDF处理的文本内容特征均分成第一样本和第二样本;根据朴素贝叶斯算法分别学习出与第一样本对应的第一文本挖掘分类器,以及与第二样本对应的第二文本挖掘分类器;利用第一文本挖掘分类器为第二样本分配第二置信度得分矩阵,以及利用第二文本挖掘分类器为第一样本分配第一置信度得分矩阵;第一置信度得分矩阵和第二置信度得分矩阵即为数值文本特征。
这样设置的好处是:可以对预处理生成的特征进行降维处理,生成数值文本特征,从而解决文本内容特征在预处理中生成的特征维度过大,导致数字特征和布尔特征在模型中的作用被稀释的问题。
可选的,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,还可以包括:预先利用决策树算法、支持向量机算法、逻辑回归算法以及卷积神经网络算法中的任一种来构建算法模型。
这样设置的好处是:可以更为全面的利用不同算法在日志记录语句级别预测方面的用途,从而达到尽可能准确推荐的目的。
可选的,查找训练项目中的日志记录语句,以及包含日志记录语句的代码块,可以通过以下方式实现:获取训练项目中的所有源码文件;根据正则匹配找到各源码文件中的日志记录语句;利用语法树分析,向根节点方向遍历,找到包含日志记录语句的代码块。
实施例二
图2a是本发明实施例二中的一种日志级别的预测方法的流程图。本发明实施例可以与上述实施例中各个可选方案结合。在本发明实施例中,在获取待***日志记录语句的代码块之前,还包括:查找训练项目中的日志记录语句,以及包含日志记录语句的代码块;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征;将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型。
步骤210、查找训练项目中的日志记录语句,以及包含日志记录语句的代码块。
本实施例中,为了保证训练项目的代码数据有较高的质量,可以学习到好的日志记录语句级别的决策规律,可以选择多人共同开发、项目长时间运行且涉及领域广泛的GitHub上排名前一百的Java项目作为训练项目。
可选的,查找训练项目中的日志记录语句,以及包含日志记录语句的代码块,包括:获取训练项目中的所有源码文件;根据正则匹配找到各源码文件中的日志记录语句;利用语法树分析,向根节点方向遍历,找到包含日志记录语句的代码块。
本实施例可以遍历当前训练项目的目录,找到所有的源码文件,提取每行源代码的贡献者与代码内容,将代码内容拼接成Java源码输入到JLE工具中,接着通过正则匹配找到项目中的日志记录语句,再往上遍历该日志记录语句的父节点,直到确定这一节点为十种代码块的一种。
可选的,在查找训练项目中的日志记录语句,以及包含日志记录语句的代码块之后,还包括:获取日志记录语句的日志级别以及贡献者;根据日志记录语句的日志级别以及贡献者,对日志记录语句进行有效性筛选。
为了进一步保证数据的可靠性,避免数据质量问题所带来的偏差,需要对训练项目中获取的日志记录语句进行筛选,过滤掉有可能改变的或者级别不合适的日志记录语句,保证学习到的分类规律来自于高稳定且高质量的有效数据。
可选的,根据日志记录语句的日志级别以及贡献者,对日志记录语句进行有效性筛选,可以包括:如果日志记录语句的贡献者在预设的贡献者列表中,且日志记录语句的日志级别与其输出的日志级别一致,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且贡献者的所有日志记录语句的所属文件的数量大于等于文件数量阈值,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且日志记录语句的所属文件中的日志记录语句数量小于等于语句数量阈值,以及日志记录语句的所属文件中的日志记录语句密度小于等于语句密度阈值,则保留日志记录语句。
步骤220、根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征。
本实施例中,预设特征模型中包括如下需要提取的特征:触发策略类型、代码块的类型、代码块的异常类型、代码块调用的方法名称、代码块调用的方法的调用方名称、代码块中声明的变量数目、代码块中声明的变量名称、代码块中声明的变量类型、是否有assert语句、是否有thread语句、是否有JDBC语句、是否有other log语句、是否有throw语句、是否有返回值、是否有flag语句、代码块的源代码行SLOC、other log语句的数目、代码块调用的方法数目、代码块调用的方法的参数数目、文件中的日志记录语句密度、文件中的日志记录语句数目、文件中的日志记录语句平均长度、文件中的日志记录语句参数的平均长度、最大日志级别、文件的类名以及文件的包的名称。
步骤230、将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型。
可选的,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,还包括:对代码块特征中的文本内容特征依次进行驼峰转换处理、小写转换处理、去停用词处理、词干提取和词根化处理以及词频-逆文件频率TF-IDF处理;通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征。
本实施例中,如图2b所示,由于文本内容特征无法直接作为机器学习模型的输入数据进行学习,因此需要对其进行一系列预处理,除去冗余信息并转化为数字表示。但是文本内容特征预处理中生成的特征维度过大,会稀释掉数字特征和布尔特征在模型中的作用,因此,需要再利用贝叶斯模型的文本挖掘器对预处理生成的特征进行降维处理,生成数值文本特征。
本实施例中,如图2b所示,对提取出来的文本内容特征进行预处理的具体步骤如下:1) 驼峰转换:由于提取的所有文本内容特征都是标识符名称,如方法名和变量名等,而Java语言的命名规范一般都是默认是使用驼峰法则,因此可以很方便地利用驼峰法则的特性分离拼接在一起的单词,这一步操作的实质是分词。2)小写转换:因为Java代码中的字母使用大写只是为了符合驼峰规范,而不是像英语语法中规定的那般具有特殊意义,所以为了能统一处理,将提取的所有文本特征中的大写字母都转换为小写字母。3)去停用词:停用词主要是指副词、形容词及其一些连接词,如“the”、“is”等对于文本分类来说往往是毫无意义的词语。4)词干提取和词根化:为了统一文本内容特征所提取出的信息,需要对它们进行词干提取和词根化处理,保留每个命名单词的基本含义。5)TF-IDF处理:为文本内容特征设置权重完成从文本到数字的转换。
可选的,如图2c所示,通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征,包括:使用分层随机抽样将经过TF-IDF处理的文本内容特征均分成第一样本和第二样本;根据朴素贝叶斯算法分别学习出与第一样本对应的第一文本挖掘分类器,以及与第二样本对应的第二文本挖掘分类器;利用第一文本挖掘分类器为第二样本分配第二置信度得分矩阵,以及利用第二文本挖掘分类器为第一样本分配第一置信度得分矩阵;第一置信度得分矩阵和第二置信度得分矩阵即为数值文本特征。其中,置信度得分矩阵即为属于每个日志记录语句级别的概率。
经过上述的处理,大部分的文本内容特征都可以被成功转化为可以作为算法输入的数值文本特征,但是具有类别属性的文本内容特征,例如代码块类型,由于是离散型的数据,需要采取更为合适的方法对其进行数值化处理,例如,使用独热码对其进行进一步的处理,并对数值文本特征进行标准化处理。
可选的,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,还包括:预先利用决策树算法、支持向量机算法、逻辑回归算法以及卷积神经网络算法中的任一种来构建算法模型。
通过调用scikit-learn中算法实现的接口,将处理后的代码块特征和文件特征,也就是数值文本特征、数字特征以及布尔特征,共同输入到算法模型中进行训练,学习特征与日志记录语句级别之间的映射规律,在学习到映射规律之后便可生成日志级别预测模型。
步骤240、获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志。
步骤250、根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征。
步骤260、根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度。
步骤270、根据日志级别在代码块中***日志记录语句。
本发明实施例的技术方案,通过获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;根据日志级别在代码块中***日志记录语句,解决了现有技术中只能依赖开发人员的开发经验和领域知识来决策日志记录语句的级别,导致开发效率较低的问题,实现了对待***日志记录语句进行日志级别预测,减少了日志级别的决策时间,提高了开发效率。
实施例三
图3是本发明实施例三中的一种日志级别的预测装置的结构示意图。该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。如图3所示,装置包括:代码块获取模块310、特征获取模块320、级别确定模块330以及日志语句***模块340;
代码块获取模块310,用于获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;
特征获取模块320,用于根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;
级别确定模块330,用于根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;
日志语句***模块340,用于根据日志级别在代码块中***日志记录语句。
本发明实施例的技术方案,通过获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;根据日志级别在代码块中***日志记录语句,解决了现有技术中只能依赖开发人员的开发经验和领域知识来决策日志记录语句的级别,导致开发效率较低的问题,实现了对待***日志记录语句进行日志级别预测,减少了日志级别的决策时间,提高了开发效率。
在上述各实施例的基础上,代码块特征包括:文本内容特征以及句法特征;文本内容特征至少包括:结构特征,代码块调用的方法名称,代码块中声明的变量名称,代码块的类型以及触发策略类型;结构特征至少包括:代码块的源代码行SLOC,代码块调用的方法数目以及代码块中声明的变量数目;句法特征至少包括:是否有throw语句以及是否有返回值;文件特征至少包括:文件中的日志记录语句密度,文件中的日志记录语句平均长度以及文件的类名。
在上述各实施例的基础上,特征获取模块320,具体用于:将代码块以及代码块的所属文件输入至源码分析工具中,得到代码块特征和文件特征。
在上述各实施例的基础上,日志级别包括:重要性等级依次递减的致命级别、错误级别、警告级别、信息级别、调试级别和跟踪级别;其中,重要性等级越低,记录日志中所记录信息的详细程度越详细。
在上述各实施例的基础上,级别确定模块330,具体用于:将代码块特征和文件特征输入至预先训练的日志级别预测模型中,得到日志级别。
在上述各实施例的基础上,还包括:查找模块,用于在获取待***日志记录语句的代码块之前,查找训练项目中的日志记录语句,以及包含日志记录语句的代码块;特征提取模块,用于根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征;训练模块,用于将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型。
在上述各实施例的基础上,还包括:筛选模块,用于在查找训练项目中的日志记录语句,以及包含日志记录语句的代码块之后,获取日志记录语句的日志级别以及贡献者;根据日志记录语句的日志级别以及贡献者,对日志记录语句进行有效性筛选。
在上述各实施例的基础上,筛选模块,具体用于:如果日志记录语句的贡献者在预设的贡献者列表中,且日志记录语句的日志级别与其输出的日志级别一致,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且贡献者的所有日志记录语句的所属文件的数量大于等于文件数量阈值,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且日志记录语句的所属文件中的日志记录语句数量小于等于语句数量阈值,以及日志记录语句的所属文件中的日志记录语句密度小于等于语句密度阈值,则保留日志记录语句。
在上述各实施例的基础上,还包括:预处理模块,用于在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,对代码块特征中的文本内容特征依次进行驼峰转换处理、小写转换处理、去停用词处理、词干提取和词根化处理以及词频-逆文件频率TF-IDF处理;降维处理模块,用于通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征。
在上述各实施例的基础上,降维处理模块,具体用于:使用分层随机抽样将经过TF-IDF处理的文本内容特征均分成第一样本和第二样本;根据朴素贝叶斯算法分别学习出与第一样本对应的第一文本挖掘分类器,以及与第二样本对应的第二文本挖掘分类器;利用第一文本挖掘分类器为第二样本分配第二置信度得分矩阵,以及利用第二文本挖掘分类器为第一样本分配第一置信度得分矩阵;第一置信度得分矩阵和第二置信度得分矩阵即为数值文本特征。
在上述各实施例的基础上,还包括:模型构建模块,用于在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,预先利用决策树算法、支持向量机算法、逻辑回归算法以及卷积神经网络算法中的任一种来构建算法模型。
在上述各实施例的基础上,查找模块,具体用于:获取训练项目中的所有源码文件;根据正则匹配找到各源码文件中的日志记录语句;利用语法树分析,向根节点方向遍历,找到包含日志记录语句的代码块。
上述日志级别的预测装置可执行本发明任意实施例所提供的日志级别的预测方法,具备执行日志级别的预测方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四中的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备412的框图。图4显示的计算机设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备412以通用计算设备的形式表现。计算机设备412的组件可以包括但不限于:一个或者多个处理器416,存储器428,连接不同***组件(包括存储器428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机设备412典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器428用于存储指令。存储器428可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)430和/或高速缓存存储器432。计算机设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该计算机设备412交互的设备通信,和/或与使得该计算机设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,计算机设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与计算机设备412的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器416通过运行存储在存储器428中的指令,从而执行各种功能应用以及数据处理,例如执行以下操作:获取待***日志记录语句的代码块,日志记录语句用于在触发执行后形成记录日志;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到代码块特征和文件特征;根据代码块特征和文件特征,预测日志级别,日志级别用于描述记录日志中所记录信息的详细程度;根据所述日志级别在代码块中***日志记录语句。
在上述各实施例的基础上,代码块特征包括:文本内容特征以及句法特征;;文本内容特征至少包括:结构特征,代码块调用的方法名称,代码块中声明的变量名称,代码块的类型以及触发策略类型;结构特征至少包括:代码块的源代码行SLOC,代码块调用的方法数目以及代码块中声明的变量数目句法特征至少包括:是否有throw语句以及是否有返回值;文件特征至少包括:文件中的日志记录语句密度,文件中的日志记录语句平均长度以及文件的类名。
在上述各实施例的基础上,处理器416是设置为通过以下方式得到代码块特征和文件特征:将代码块以及代码块的所属文件输入至源码分析工具中,得到代码块特征和文件特征。
在上述各实施例的基础上,日志级别包括:重要性等级依次递减的致命级别、错误级别、警告级别、信息级别、调试级别和跟踪级别;其中,重要性等级越低,记录日志中所记录信息的详细程度越详细。
在上述各实施例的基础上,处理器416是设置为通过以下方式预测日志级别:将代码块特征和文件特征输入至预先训练的日志级别预测模型中,得到日志级别。
在上述各实施例的基础上,在获取待***日志记录语句的代码块之前,处理器416还设置为:查找训练项目中的日志记录语句,以及包含日志记录语句的代码块;根据预设特征模型,对代码块以及代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征;将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型。
在上述各实施例的基础上,在查找训练项目中的日志记录语句,以及包含日志记录语句的代码块之后,处理器416还设置为:获取日志记录语句的日志级别以及贡献者;根据日志记录语句的日志级别以及贡献者,对日志记录语句进行有效性筛选。
在上述各实施例的基础上,处理器416是设置为通过以下方式对日志记录语句进行有效性筛选:如果日志记录语句的贡献者在预设的贡献者列表中,且日志记录语句的日志级别与其输出的日志级别一致,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且贡献者的所有日志记录语句的所属文件的数量大于等于文件数量阈值,则保留日志记录语句;如果日志记录语句的日志级别与其输出的日志级别一致,日志记录语句的贡献者不在预设的贡献者列表中,且日志记录语句的所属文件中的日志记录语句数量小于等于语句数量阈值,以及日志记录语句的所属文件中的日志记录语句密度小于等于语句密度阈值,则保留日志记录语句。
在上述各实施例的基础上,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,处理器416还设置为:对代码块特征中的文本内容特征依次进行驼峰转换处理、小写转换处理、去停用词处理、词干提取和词根化处理以及词频-逆文件频率TF-IDF处理;通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征。
在上述各实施例的基础上,处理器416是设置为通过以下方式得到数值文本特征:使用分层随机抽样将经过TF-IDF处理的文本内容特征均分成第一样本和第二样本;根据朴素贝叶斯算法分别学习出与第一样本对应的第一文本挖掘分类器,以及与第二样本对应的第二文本挖掘分类器;利用第一文本挖掘分类器为第二样本分配第二置信度得分矩阵,以及利用第二文本挖掘分类器为第一样本分配第一置信度得分矩阵;第一置信度得分矩阵和第二置信度得分矩阵即为数值文本特征。
在上述各实施例的基础上,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,处理器416还设置为:预先利用决策树算法、支持向量机算法、逻辑回归算法以及卷积神经网络算法中的任一种来构建算法模型。
在上述各实施例的基础上,处理器416是设置为通过以下方式查找训练项目中的日志记录语句,以及包含日志记录语句的代码块:获取训练项目中的所有源码文件;根据正则匹配找到各源码文件中的日志记录语句;利用语法树分析,向根节点方向遍历,找到包含日志记录语句的代码块。
实施例五
本发明实施例五提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机指令,计算机指令用于执行本发明任一实施例所提供的日志级别的预测方法。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (25)

1.一种日志级别的预测方法,其特征在于,包括:
获取待***日志记录语句的代码块,所述日志记录语句用于在触发执行后形成记录日志;
根据预设特征模型,对所述代码块以及所述代码块的所属文件进行特征提取,得到代码块特征和文件特征;
根据所述代码块特征和文件特征,预测日志级别,所述日志级别用于描述所述记录日志中所记录信息的详细程度;
根据所述日志级别在所述代码块中***日志记录语句。
2.根据权利要求1所述的方法,其特征在于,所述代码块特征包括:文本内容特征以及句法特征;
所述文本内容特征至少包括:结构特征,代码块调用的方法名称,代码块中声明的变量名称,代码块的类型以及触发策略类型;
所述结构特征至少包括:代码块的源代码行SLOC,代码块调用的方法数目以及代码块中声明的变量数目;
所述句法特征至少包括:是否有throw语句以及是否有返回值;
所述文件特征至少包括:文件中的日志记录语句密度,文件中的日志记录语句平均长度以及文件的类名。
3.根据权利要求2所述的方法,其特征在于,对所述代码块以及所述代码块的所属文件进行特征提取,得到代码块特征和文件特征,包括:
将所述代码块以及所述代码块的所属文件输入至源码分析工具中,得到所述代码块特征和文件特征。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述日志级别包括:重要性等级依次递减的致命级别、错误级别、警告级别、信息级别、调试级别和跟踪级别;
其中,重要性等级越低,所述记录日志中所记录信息的详细程度越详细。
5.根据权利要求1所述的方法,其特征在于,根据所述代码块特征和文件特征,预测日志级别,包括:
将所述代码块特征和文件特征输入至预先训练的日志级别预测模型中,得到所述日志级别。
6.根据权利要求5所述的方法,其特征在于,在获取待***日志记录语句的代码块之前,还包括:
查找训练项目中的日志记录语句,以及包含所述日志记录语句的代码块;
根据预设特征模型,对所述代码块以及所述代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征;
将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到所述日志级别预测模型。
7.根据权利要求6所述的方法,其特征在于,在查找训练项目中的日志记录语句,以及包含所述日志记录语句的代码块之后,还包括:
获取所述日志记录语句的日志级别以及贡献者;
根据所述日志记录语句的日志级别以及贡献者,对所述日志记录语句进行有效性筛选。
8.根据权利要求7所述的方法,其特征在于,所述根据所述日志记录语句的日志级别以及贡献者,对所述日志记录语句进行有效性筛选,包括:
如果所述日志记录语句的贡献者在预设的贡献者列表中,且所述日志记录语句的日志级别与其输出的日志级别一致,则保留所述日志记录语句;
如果所述日志记录语句的日志级别与其输出的日志级别一致,所述日志记录语句的贡献者不在预设的贡献者列表中,且所述贡献者的所有日志记录语句的所属文件的数量大于等于文件数量阈值,则保留所述日志记录语句;
如果所述日志记录语句的日志级别与其输出的日志级别一致,所述日志记录语句的贡献者不在预设的贡献者列表中,且所述日志记录语句的所属文件中的日志记录语句数量小于等于语句数量阈值,以及所述日志记录语句的所属文件中的日志记录语句密度小于等于语句密度阈值,则保留所述日志记录语句。
9.根据权利要求6所述的方法,其特征在于,在所述将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,还包括:
对所述代码块特征中的文本内容特征依次进行驼峰转换处理、小写转换处理、去停用词处理、词干提取和词根化处理以及词频-逆文件频率TF-IDF处理;
通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征。
10.根据权利要求9所述的方法,其特征在于,所述通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征,包括:
使用分层随机抽样将所述经过TF-IDF处理的文本内容特征均分成第一样本和第二样本;
根据朴素贝叶斯算法分别学习出与所述第一样本对应的第一文本挖掘分类器,以及与所述第二样本对应的第二文本挖掘分类器;
利用所述第一文本挖掘分类器为所述第二样本分配第二置信度得分矩阵,以及利用所述第二文本挖掘分类器为所述第一样本分配第一置信度得分矩阵;
所述第一置信度得分矩阵和第二置信度得分矩阵即为数值文本特征。
11.根据权利要求6所述的方法,其特征在于,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,还包括:
预先利用决策树算法、支持向量机算法、逻辑回归算法以及卷积神经网络算法中的任一种来构建算法模型。
12.根据权利要求6所述的方法,其特征在于,查找训练项目中的日志记录语句,以及包含所述日志记录语句的代码块,包括:
获取所述训练项目中的所有源码文件;
根据正则匹配找到各所述源码文件中的日志记录语句;
利用语法树分析,向根节点方向遍历,找到包含所述日志记录语句的代码块。
13.一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
获取待***日志记录语句的代码块,所述日志记录语句用于在触发执行后形成记录日志;
根据预设特征模型,对所述代码块以及所述代码块的所属文件进行特征提取,得到代码块特征和文件特征;
根据所述代码块特征和文件特征,预测日志级别,所述日志级别用于描述所述记录日志中所记录信息的详细程度;
根据所述日志级别在所述代码块中***日志记录语句。
14.根据权利要求13所述的计算机设备,其特征在于:
所述代码块特征包括:文本内容特征以及句法特征;
所述文本内容特征至少包括:结构特征,代码块调用的方法名称,代码块中声明的变量名称,代码块的类型以及触发策略类型;
所述结构特征至少包括:代码块的源代码行SLOC,代码块调用的方法数目以及代码块中声明的变量数目;
所述句法特征至少包括:是否有throw语句以及是否有返回值;
所述文件特征至少包括:文件中的日志记录语句密度,文件中的日志记录语句平均长度以及文件的类名。
15.根据权利要求14所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式得到代码块特征和文件特征:
将所述代码块以及所述代码块的所属文件输入至源码分析工具中,得到所述代码块特征和文件特征。
16.根据权利要求13-15中任一所述的计算机设备,其特征在于:
所述日志级别包括:重要性等级依次递减的致命级别、错误级别、警告级别、信息级别、调试级别和跟踪级别;
其中,重要性等级越低,所述记录日志中所记录信息的详细程度越详细。
17.根据权利要求13所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式预测日志级别:
将所述代码块特征和文件特征输入至预先训练的日志级别预测模型中,得到所述日志级别。
18.根据权利要求17所述的计算机设备,其特征在于,在获取待***日志记录语句的代码块之前,所述处理器还设置为:
查找训练项目中的日志记录语句,以及包含所述日志记录语句的代码块;
根据预设特征模型,对所述代码块以及所述代码块的所属文件进行特征提取,得到与预设特征模型匹配的代码块特征和文件特征;
将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到所述日志级别预测模型。
19.根据权利要求18所述的计算机设备,其特征在于,在查找训练项目中的日志记录语句,以及包含所述日志记录语句的代码块之后,所述处理器还设置为:
获取所述日志记录语句的日志级别以及贡献者;
根据所述日志记录语句的日志级别以及贡献者,对所述日志记录语句进行有效性筛选。
20.根据权利要求19所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式对所述日志记录语句进行有效性筛选:
如果所述日志记录语句的贡献者在预设的贡献者列表中,且所述日志记录语句的日志级别与其输出的日志级别一致,则保留所述日志记录语句;
如果所述日志记录语句的日志级别与其输出的日志级别一致,所述日志记录语句的贡献者不在预设的贡献者列表中,且所述贡献者的所有日志记录语句的所属文件的数量大于等于文件数量阈值,则保留所述日志记录语句;
如果所述日志记录语句的日志级别与其输出的日志级别一致,所述日志记录语句的贡献者不在预设的贡献者列表中,且所述日志记录语句的所属文件中的日志记录语句数量小于等于语句数量阈值,以及所述日志记录语句的所属文件中的日志记录语句密度小于等于语句密度阈值,则保留所述日志记录语句。
21.根据权利要求18所述的计算机设备,其特征在于,在所述将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,所述处理器还设置为:
对所述代码块特征中的文本内容特征依次进行驼峰转换处理、小写转换处理、去停用词处理、词干提取和词根化处理以及词频-逆文件频率TF-IDF处理;
通过文本挖掘分类器,对经过TF-IDF处理的文本内容特征进行降维处理,得到数值文本特征。
22.根据权利要求21所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式得到数值文本特征:
使用分层随机抽样将所述经过TF-IDF处理的文本内容特征均分成第一样本和第二样本;
根据朴素贝叶斯算法分别学习出与所述第一样本对应的第一文本挖掘分类器,以及与所述第二样本对应的第二文本挖掘分类器;
利用所述第一文本挖掘分类器为所述第二样本分配第二置信度得分矩阵,以及利用所述第二文本挖掘分类器为所述第一样本分配第一置信度得分矩阵;
所述第一置信度得分矩阵和第二置信度得分矩阵即为数值文本特征。
23.根据权利要求18所述的计算机设备,其特征在于,在将提取到的代码块特征和文件特征输入至预设的算法模型中进行训练,得到日志级别预测模型之前,所述处理器还设置为:
预先利用决策树算法、支持向量机算法、逻辑回归算法以及卷积神经网络算法中的任一种来构建算法模型。
24.根据权利要求18所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式查找训练项目中的日志记录语句,以及包含所述日志记录语句的代码块:
获取所述训练项目中的所有源码文件;
根据正则匹配找到各所述源码文件中的日志记录语句;
利用语法树分析,向根节点方向遍历,找到包含所述日志记录语句的代码块。
25.一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机指令,所述计算机指令用于执行如权利要求1-12中任一所述的日志级别的预测方法。
CN201911077292.8A 2019-11-06 2019-11-06 日志级别的预测方法、设备及存储介质 Active CN110806962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911077292.8A CN110806962B (zh) 2019-11-06 2019-11-06 日志级别的预测方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911077292.8A CN110806962B (zh) 2019-11-06 2019-11-06 日志级别的预测方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110806962A CN110806962A (zh) 2020-02-18
CN110806962B true CN110806962B (zh) 2021-04-16

Family

ID=69501429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911077292.8A Active CN110806962B (zh) 2019-11-06 2019-11-06 日志级别的预测方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110806962B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111522708B (zh) * 2020-04-10 2021-08-24 星环信息科技(上海)股份有限公司 一种日志记录方法、计算机设备及存储介质
CN111708681B (zh) * 2020-06-15 2021-05-07 北京优特捷信息技术有限公司 一种日志处理方法、装置、设备及存储介质
CN113312485B (zh) * 2021-06-25 2022-11-29 展讯通信(上海)有限公司 日志自动化分类方法及装置、计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559121A (zh) * 2013-09-23 2014-02-05 清华大学 基于日志注入的驱动配置调试方法
WO2019060325A1 (en) * 2017-09-19 2019-03-28 Justin Herz CONSUMER INTELLIGENCE FOR AUTOMATIC DECISION-MAKING AND SELECTION OF REAL-TIME MESSAGES
CN110058935A (zh) * 2019-04-26 2019-07-26 广州华多网络科技有限公司 日志级别调整方法、装置及***、可读存储介质
CN110347572A (zh) * 2019-07-10 2019-10-18 星环信息科技(上海)有限公司 一种性能日志输出方法、装置、***、设备及介质
CN110377509A (zh) * 2019-06-29 2019-10-25 苏州浪潮智能科技有限公司 一种web页面实时查看插件脚本调试日志的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930348B (zh) * 2016-04-06 2019-06-04 广州广电运通金融电子股份有限公司 一种基于日志分析的故障定位方法及装置
US10775211B2 (en) * 2017-05-03 2020-09-15 Quest Automated Services, LLC Real-time vessel monitoring system
CN108280021A (zh) * 2018-01-25 2018-07-13 郑州云海信息技术有限公司 一种基于机器学习的日志等级分析方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559121A (zh) * 2013-09-23 2014-02-05 清华大学 基于日志注入的驱动配置调试方法
WO2019060325A1 (en) * 2017-09-19 2019-03-28 Justin Herz CONSUMER INTELLIGENCE FOR AUTOMATIC DECISION-MAKING AND SELECTION OF REAL-TIME MESSAGES
CN110058935A (zh) * 2019-04-26 2019-07-26 广州华多网络科技有限公司 日志级别调整方法、装置及***、可读存储介质
CN110377509A (zh) * 2019-06-29 2019-10-25 苏州浪潮智能科技有限公司 一种web页面实时查看插件脚本调试日志的方法
CN110347572A (zh) * 2019-07-10 2019-10-18 星环信息科技(上海)有限公司 一种性能日志输出方法、装置、***、设备及介质

Also Published As

Publication number Publication date
CN110806962A (zh) 2020-02-18

Similar Documents

Publication Publication Date Title
Umer et al. CNN-based automatic prioritization of bug reports
Chen et al. Practical accuracy estimation for efficient deep neural network testing
US10061766B2 (en) Systems and methods for domain-specific machine-interpretation of input data
US11366840B2 (en) Log-aided automatic query expansion approach based on topic modeling
US20190228319A1 (en) Data-driven automatic code review
US9318027B2 (en) Caching natural language questions and results in a question and answer system
CN110806962B (zh) 日志级别的预测方法、设备及存储介质
US9250993B2 (en) Automatic generation of actionable recommendations from problem reports
US8442926B2 (en) Information filtering system, information filtering method and information filtering program
WO2019143542A1 (en) Time-weighted risky code prediction
US20180060211A1 (en) Applying consistent log levels to application log messages
CN107229627B (zh) 一种文本处理方法、装置及计算设备
CN111522708B (zh) 一种日志记录方法、计算机设备及存储介质
US10628749B2 (en) Automatically assessing question answering system performance across possible confidence values
US11200145B2 (en) Automatic bug verification
WO2021001517A1 (en) Question answering systems
CN113591998A (zh) 分类模型的训练和使用方法、装置、设备以及存储介质
US20220179894A1 (en) Automatic document classification
CN114610576A (zh) 一种日志生成监控方法和装置
US20110172991A1 (en) Sentence extracting method, sentence extracting apparatus, and non-transitory computer readable record medium storing sentence extracting program
CN112579781A (zh) 文本归类方法、装置、电子设备及介质
CN115809466B (zh) 基于stride模型的安全需求生成方法、装置、电子设备及介质
US20230359826A1 (en) Computer-implemented system and method to perform natural language processing entity research and resolution
CN117171653B (zh) 一种识别信息关系的方法、装置、设备及存储介质
Ma Anomaly detection for Linux system log

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
CB02 Change of applicant information

Address after: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai

Applicant after: Star link information technology (Shanghai) Co.,Ltd.

Address before: 200233 11-12 / F, building B, 88 Hongcao Road, Xuhui District, Shanghai

Applicant before: TRANSWARP TECHNOLOGY (SHANGHAI) Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant