CN108959199A - 一种日志的突出显示方法、装置、存储介质及安卓终端 - Google Patents

一种日志的突出显示方法、装置、存储介质及安卓终端 Download PDF

Info

Publication number
CN108959199A
CN108959199A CN201810689879.3A CN201810689879A CN108959199A CN 108959199 A CN108959199 A CN 108959199A CN 201810689879 A CN201810689879 A CN 201810689879A CN 108959199 A CN108959199 A CN 108959199A
Authority
CN
China
Prior art keywords
log
information
log information
error
locallog
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
CN201810689879.3A
Other languages
English (en)
Other versions
CN108959199B (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810689879.3A priority Critical patent/CN108959199B/zh
Publication of CN108959199A publication Critical patent/CN108959199A/zh
Application granted granted Critical
Publication of CN108959199B publication Critical patent/CN108959199B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种日志的突出显示方法、装置、存储介质及安卓终端。该方法包括:对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;通过封装错误关键字的自定义错误信息数组对日志行片段进行遍历,得到判定结果;判定结果包括日志行片段所包含的错误关键字;针对包含错误关键字的日志行片段插入预设属性的关键字标签;根据关键字标签,对日志行片段按照预设渲染方式进行渲染。通过采用本技术方案,可以实现对日志信息中,存在特殊情况的日志信息进行特殊方式进行渲染,达到便于工作人员对错误日志信息进行查看的效果。

Description

一种日志的突出显示方法、装置、存储介质及安卓终端
技术领域
本发明实施例涉及日志显示技术领域,尤其涉及一种日志的突出显示方法、装置、存储介质及安卓终端。
背景技术
目前,计算机技术领域发展迅速,加之以互联网技术的发展,通过计算机来对应用程序的运行进行监控已经得到了较为广泛的运用。
在进行应用程序的运行监控或者结果监控时,往往会对所发生的时间以日志信息的方式进行记录。这样在工作人员调用日志信息后,通过日志内容就可以确定应用程序运行过程中或者运行成果是否存在问题。然而,传统方案中对于日志的显示也不会做不同属性的区分显示,这样在定位问题日志信息的时候增加了难度。
发明内容
本发明实施例提供一种日志的突出显示方法、装置、存储介质及安卓终端,可以实现对日志信息中,存在特殊情况的日志信息进行特殊方式进行渲染,达到便于工作人员对错误日志信息进行查看的效果。
第一方面,本发明实施例提供了一种日志的突出显示方法,该方法包括:
对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
针对包含错误关键字的日志行片段插入预设属性的关键字标签;
根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
进一步的,在对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段之前,所述方法还包括:
在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中。
进一步的,在对日志信息的录入之前,所述方法还包括:
定义一个字符串String localLog,并对所述字符串进行初始化,形成一个空白字符串String localLog=""。
进一步的,所述在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中,包括:
构建一个builder对象;
通过调用builder对象中的日志信息添加函数来将日志信息添加到builder对象中;
通过调用builder对象中的特定换行符添加函数来向builder对象中添加一个特殊的换行符;
将所有的日志信息输入完成后,将所述builder对象存储到所述空白字符串String localLog=""中。
进一步的,所述针对包含错误关键字的日志行片段插入预设属性的关键字标签,包括:
定义一个临时变量tmpStr;
对所述临时变量tmpStr进行赋值,其中赋值内容包括:存在错误的日志行片段的日志信息,渲染颜色以及关键字标签;
将所述临时变量tmpStr替换所述存在错误的日志行片段的日志信息。
进一步的,所述根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染,包括:
对所述日志行片段进行整合,得到日志字符串对象;
对所述日志字符串对象进行格式化处理,通过调用Html.fromHtml(resultLog)函数,会返回一个Spanned的对象信息mSpanned;
调用TextView对象中的setText(mSpanned)将所述对象信息mSpanned设置到TextView对象中。
第二方面,本发明实施例还提供了一种日志的突出显示装置,该装置包括:
日志行片段解析模块,用于对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
存在错误判定模块,用于通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
关键字标签插入模块,用于针对包含错误关键字的日志行片段插入预设属性的关键字标签;
渲染模块,用于根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
进一步的,所述装置还包括:
日志信息录入模块,用于在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的日志的突出显示方法。
第四方面,本申请实施例提供了一种安卓终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的日志的突出显示方法。
本申请实施例所提供的技术方案,通过对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;针对包含错误关键字的日志行片段插入预设属性的关键字标签;根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。通过采用本申请所提供的技术方案,可以实现对日志信息中,存在特殊情况的日志信息进行特殊方式进行渲染,达到便于工作人员对错误日志信息进行查看的效果。
附图说明
图1是本发明实施例一提供的日志的突出显示方法的流程图;
图2是本发明实施例三提供的日志的突出显示装置的结构示意图;
图3为本申请实施例提供的一种安卓终端的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
传统方案中一般是一段日志信息对应一个TextView对象,多种颜色的日志信息对应多个TextView对象。尤其是单文本内容比较复杂的时候就需要多个TextView对象来对内容进行不同的承载,由于系统需要渲染多个TextView对象并且开发人员需要对多个TextView对象进行维护,这样就会极大的增加内存开销和增加人力维护成本。而且,传统方案中对于日志的显示也不会做不同颜色的显示区分,这样在定位问题的时候很难快速定位日志文件中的异常信息的位置。
本方案的优点在于:本方案通过将日志文件记录到localLog对象中,再通过调用builder对象中的builder.append(logInfo)来将日志信息logInfo添加到builder对象,并且通过错误信息数组对每条日志信息进行遍历,当日志信息存在错误时,通过对字符串中相应的位置插入关键符号,并在显示日志文件中的所有日志信息的过程中,动态改变日志信息内容的颜色的方法设计来实现对日志文件进行动态标记,并且能够实现通过一个TextView控件来承载多种多样的文本内容信息。对日志中的异常信息能够自动进行高亮输出等。相比传统方案降低了内存开销,降低了开发者对多个TextView控件的维护成本,同时也提高了定位日志文件中的异常日志信息的便捷性。
实施例一
图1是本发明实施例一提供的日志的突出显示方法的流程图,本实施例可适用对错误的日志信息的进行突出的情况,该方法可以由本发明实施例所提供的日志的突出显示装置来执行,该装置可以由软件和/或硬件的方式来实现,并可集成于安卓终端中。
如图1所示,所述日志的突出显示方法包括:
S110、对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符。
在本实施例中,优选的,在对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段之前,所述方法还包括:在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中。
在本实施例中,优选的,在对日志信息的录入之前,所述方法还包括:定义一个字符串String localLog,并对所述字符串进行初始化,形成一个空白字符串StringlocalLog=""。
其中,每个日志信息可以能对程序执行过程中一个事件进行的记录,每个日志信息记录完成后,可以添加一个特定换行符,可以理解为是在每个日志信息记录后自动换行记录其他日志信息。在把所有的日志信息记录完成后形成一个日志文件,将整个日志文件存储到变量localLog对象中。
传统方案中日志信息直接写入到Console控制台,或者,直接写入到日志文件中,日志信息的换行通常使用文本文件的换行符('/n'),本方案重新设计了换行符,这样能够方便后期对内容的解析和渲染等。
首先,定义一个全局的日志文件记录的变量,定义方式是String localLog,并对该变量进行初始化为一个空白字符串localLog="";
日志文件的打印通过调用系统的Log函数来进行打印并且输出,处理打印以外,还需要将日志文件记录到上述的变量localLog中,传统的方式是直接通过字符串拼接来实现字符串内容的合并。传统方案的加号“+”拼接字符串的方式会对内存有较大的开销。
本方案通过构建一个StringBuild builder=new StringBuilder()函数来构建一个builder对象,然后通过调用builder对象中的builder.append(logInfo)来将日志信息logInfo添加到builder对象中。
每次输入完一段日志信息后需要给日志信息添加一个特定的换行符"<br/>",该换行方便后续对内容的解析和渲染的时候使用,具体的,添加方法是调用builder.append("<br/>")来向builder对象中添加一个特殊的换行符,这样就能够确保每一个日志片段都会插入一个我们定义的换行符标签"<br/>"。
当日志文件输入结束之后,我们需要将builder对象的内容存储到localLog对象中,具体是通过调用localLog=builder.toString()方法将builder的内容信息存储到localLog对象中,这样就将日志的内容信息全部存储到localLog对象中了。
这样,对于日志文件进行解析的过程中,首先是对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段。其中每个行片段对应上述内容中的一个日志信息。
具体的,日志文件通过上述步骤的实现已经全部存储到局部变量localLog中了,接下来需要通过调用localLog中的localLog.split("<br/>")来通过关键字"<br/>"来对localLog日志信息进行分割处理,并且将分割后的结果存储到一个字符串数组String[]lineStrs中,通过split分割函数我们就将整个大的日志localLog内容切割成多个日志行片段。
从逻辑上对localLog来进行划分处理,认为的将每个日志片段划分成一行,这样就可以通过对lineStrs的每行数据进行独立的解析处理了。
S120、通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字。
其中,为了能够解析出lineStrs中的错误信息,传统方案是对内容逐一解析然后进行判定,这种方式耗时且复杂。本方案中通过定义一个全局的错误字段信息的描述数组,具体是String errMsg[]{'fail','failed','error','errorNo','unknown',...}等,也就是把常见的错误关键字信息全部封装到一个自定义的错误信息数组errMsg中,这样后续就仅仅需要判定数据中是否含有这些错误信息来判定当前内容是否是异常输出内容了。
接下来通过遍历的方式取出数组lineStrs中的一条数据line,然后依次判定line中是否包含errMsg中所包含的元素信息,具体的判定方法是通过调用line.contains(errMsg[i])的方式来进行判定的,如果该函数返回true表示包含错误信息,返回false表示不包含错误信息。其中的变量i是表示错误数组errMsg中的第i个元素,i的变化范围为0到errMsg.length-1,这样就可以保证line将errMsg中的所有信息全部都判定一遍。
S130、针对包含错误关键字的日志行片段插入预设属性的关键字标签。
接下来,如果判定其中包含错误信息,此时就需要对该错误信息做一个相应的标记处理,用于后期显示的时候能够被突出显示出来。例如,如果判断lineStrs[i]这条数据中有异常信息,此时需要通过定义一个临时变量tmpStr然后对tmpStr进行赋值操作如下tmpStr="<font color="#ff0000">"+lineStrs[i]+"</font>"的方式来将tmpStr进行赋值操作,简单的来说就是在原来字符串lineStrs[i]的左右插入了一个<font>的关键字标签,这个标签后期再渲染的时候会被进行特定颜色的渲染,具体的颜色色值是红色("#ff0000")。
设置完成tmpStr的值后,需要将该值的内容来替换原来的lineStrs[i]中的内容信息,具体是通过调用lineStrs[i]=tmpStr的赋值语句来将新生成的tmpStr的内容赋值到lineStrs[i]对象中。
S140、根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
通过上述步骤的实施,已经将其中出现异常的日志信息的内容全部打上了一个关键字标签<font>,接下来可以通过如下方式对日志文件进行显示。
为了能够通过一个TextView来对所有的日志文件进行展示,需要处理的是将处理后的数组lineStrs[]转变成一个完整的字符串信息,具体的转换过程是通过调用StringresultLog=new String(lineStrs)来实现。
这样设置的好处是可以避免像现有技术那样每个日志信息都分别存储在一个TextView中进行显示,造成后期维护以及前期编码工作量巨大、而且具有极高的重复性的问题。
通过调用String的构造函数就将一个字符串数组lineStrs[]转变成了一个字符串对象resultLog,接下来需要对该字符串对象进行格式化处理,具体是通过调用系统中提供的Html.fromHtml(resultLog),该函数会返回一个Spanned的对象信息mSpanned。
接下来通过调用TextView对象中的setText(mSpanned)方法来将上述生成的内容设置到TextView对象中,这样TextView对象在对其内容进行渲染的时候会解析其中我们上述定义的关键字标签信息,这样就会将我们插入特殊的标签内容以特殊的方式给呈现出来,也就实现了通过一个TextView对象来展现多种内容信息的目标。
值得说明的是,在本实施例中给出了将日志信息以红色字体进行显示的方式,除此之外,还可以通过添加本景色、更改字体以及加粗显示等多种手段,这样设置的好处是可以使得开发人员能够很容易的着重关注出现问题的日志信息,减轻开发人员的工作负担。
本申请实施例所提供的技术方案,通过对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;针对包含错误关键字的日志行片段插入预设属性的关键字标签;根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。通过采用本申请所提供的技术方案,可以实现对日志信息中,存在特殊情况的日志信息进行特殊方式进行渲染,达到便于工作人员对错误日志信息进行查看的效果。
在上述技术方案的基础上,可选的,所述在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中,包括:构建一个builder对象;通过调用builder对象中的日志信息添加函数来将日志信息添加到builder对象中;通过调用builder对象中的特定换行符添加函数来向builder对象中添加一个特殊的换行符;将所有的日志信息输入完成后,将所述builder对象存储到所述空白字符串String localLog=""中。这样设置的好处是可以将所有的日志信息的内容全部存储到localLog对象中,可以避免将日志信息存储到多个localLog对象中,有利于后续的日志文件的解析和显示处理,节省处理流程。
在上述技术方案的基础上,可选的,所述针对包含错误关键字的日志行片段插入预设属性的关键字标签,包括:定义一个临时变量tmpStr;对所述临时变量tmpStr进行赋值,其中赋值内容包括:存在错误的日志行片段的日志信息,渲染颜色以及关键字标签;将所述临时变量tmpStr替换所述存在错误的日志行片段的日志信息。这样设置的好处是可以针对存在有错误信息的日志行片段通过添加方式加入关键字标签,然后将添加后的替换原来的日志信息,这样就可以避免针对所有的日志信息都经过拆分处理后再次重新组合所带来的程序的复杂性。并且可以保证对于信息的处理简便性,处理过程中也可以避免出现失误。
在上述技术方案的基础上,可选的,所述根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染,包括:对所述日志行片段进行整合,得到日志字符串对象;对所述日志字符串对象进行格式化处理,通过调用Html.fromHtml(resultLog)函数,会返回一个Spanned的对象信息mSpanned;调用TextView对象中的setText(mSpanned)将所述对象信息mSpanned设置到TextView对象中。这样设置的好处是可以实现在一个TextView对象对所有的日志信息进行展示。
实施例二
为了能够让本领域技术人员更加清晰的了解本发明实施例所提供的技术方案,实施例二为本发明的优选实施例。
本方案将主要围绕下述几个方面来进行展开和说明:
一、日志文件的记录方式。
二、日志文件的解析及对异常信息添加标签。
三、日志文件的显示方法。
接下来我们将围绕上述几个方面来描述具体的实现步骤。
一、日志文件的记录方式。
本步骤主要描述日志文件的记录方法,传统方案中日志信息直接写入到Console控制台,或者,直接写入到日志文件中,日志信息的换行通常使用文本文件的换行符('/n'),本方案重新设计了换行符,这样能够方便后期对内容的解析和渲染等。
首先,定义一个全局的日志文件记录的变量,定义方式是String localLog,并对该变量进行初始化为一个空白字符串localLog="";
日志文件的打印通过调用系统的Log函数来进行打印并且输出,处理打印以外,还需要将日志文件记录到上述的变量localLog中,传统的方式是直接通过字符串拼接来实现字符串内容的合并。传统方案的加号“+”拼接字符串的方式会对内存有较大的开销。
本方案通过构建一个StringBuild builder=new StringBuilder()函数来构建一个builder对象,然后通过调用builder对象中的builder.append(logInfo)来将日志信息logInfo添加到builder对象中。
每次输入完一段日志信息后需要给日志信息添加一个特定的换行符"<br/>",该换行方便后续对内容的解析和渲染的时候使用,具体的,添加方法是调用builder.append("<br/>")来向builder对象中添加一个特殊的换行符,这样就能够确保每一个日志片段都会插入一个我们定义的换行符标签"<br/>"。
当日志文件输入结束之后,我们需要将builder对象的内容存储到localLog对象中,具体是通过调用localLog=builder.toString()方法将builder的内容信息存储到localLog对象中,这样就将日志的内容信息全部存储到localLog对象中了。
二、日志文件的解析及对异常信息添加标签。
这样,对于日志文件进行解析的过程中,首先是对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段。其中每个行片段对应上述内容中的一个日志信息。
具体的,日志文件通过上述步骤的实现已经全部存储到局部变量localLog中了,接下来需要通过调用localLog中的localLog.split("<br/>")来通过关键字"<br/>"来对localLog日志信息进行分割处理,并且将分割后的结果存储到一个字符串数组String[]lineStrs中,通过split分割函数我们就将整个大的日志localLog内容切割成多个日志行片段。
从逻辑上对localLog来进行划分处理,认为的将每个日志片段划分成一行,这样就可以通过对lineStrs的每行数据进行独立的解析处理了。
其中,为了能够解析出lineStrs中的错误信息,传统方案是对内容逐一解析然后进行判定,这种方式耗时且复杂。本方案中通过定义一个全局的错误字段信息的描述数组,具体是String errMsg[]{'fail','failed','error','errorNo','unknown',...}等,也就是把常见的错误关键字信息全部封装到一个自定义的错误信息数组errMsg中,这样后续就仅仅需要判定数据中是否含有这些错误信息来判定当前内容是否是异常输出内容了。
接下来通过遍历的方式取出数组lineStrs中的一条数据line,然后依次判定line中是否包含errMsg中所包含的元素信息,具体的判定方法是通过调用line.contains(errMsg[i])的方式来进行判定的,如果该函数返回true表示包含错误信息,返回false表示不包含错误信息。其中的变量i是表示错误数组errMsg中的第i个元素,i的变化范围为0到errMsg.length-1,这样就可以保证line将errMsg中的所有信息全部都判定一遍。
接下来,如果判定其中包含错误信息,此时就需要对该错误信息做一个相应的标记处理,用于后期显示的时候能够被突出显示出来。例如,如果判断lineStrs[i]这条数据中有异常信息,此时需要通过定义一个临时变量tmpStr然后对tmpStr进行赋值操作如下tmpStr="<font color="#ff0000">"+lineStrs[i]+"</font>"的方式来将tmpStr进行赋值操作,简单的来说就是在原来字符串lineStrs[i]的左右插入了一个<font>的关键字标签,这个标签后期再渲染的时候会被进行特定颜色的渲染,具体的颜色色值是红色("#ff0000")。
设置完成tmpStr的值后,需要将该值的内容来替换原来的lineStrs[i]中的内容信息,具体是通过调用lineStrs[i]=tmpStr的赋值语句来将新生成的tmpStr的内容赋值到lineStrs[i]对象中。
三、日志文件的显示方法。
通过上述步骤的实施,已经将其中出现异常的日志信息的内容全部打上了一个关键字标签<font>,接下来可以通过如下方式对日志文件进行显示。
为了能够通过一个TextView来对所有的日志文件进行展示,需要处理的是将处理后的数组lineStrs[]转变成一个完整的字符串信息,具体的转换过程是通过调用StringresultLog=new String(lineStrs)来实现。
这样设置的好处是可以避免像现有技术那样每个日志信息都分别存储在一个TextView中进行显示,造成后期维护以及前期编码工作量巨大、而且具有极高的重复性的问题。
通过调用String的构造函数就将一个字符串数组lineStrs[]转变成了一个字符串对象resultLog,接下来需要对该字符串对象进行格式化处理,具体是通过调用系统中提供的Html.fromHtml(resultLog),该函数会返回一个Spanned的对象信息mSpanned。
接下来通过调用TextView对象中的setText(mSpanned)方法来将上述生成的内容设置到TextView对象中,这样TextView对象在对其内容进行渲染的时候会解析其中我们上述定义的关键字标签信息,这样就会将我们插入特殊的标签内容以特殊的方式给呈现出来,也就实现了通过一个TextView对象来展现多种内容信息的目标。
本方案通过动态改变日志内容的颜色的方法设计来实现对日志文件进行动态标记,并且能够实现通过一个TextView控件来承载多种多样的文本内容信息。对日志中的异常信息能够自动进行高亮输出等。相比传统方案降低了内存开销,降低了开发者对多个TextView控件的维护成本,同时也提高了定位日志文件中的异常日志信息的便捷性。
实施例三
图2是本发明实施例三提供的日志的突出显示装置的结构示意图。如图2所示,所述日志的突出显示装置,包括:
日志行片段解析模块210,用于对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
存在错误判定模块220,用于通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
关键字标签插入模块230,用于针对包含错误关键字的日志行片段插入预设属性的关键字标签;
渲染模块240,用于根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
本申请实施例所提供的技术方案,通过对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;针对包含错误关键字的日志行片段插入预设属性的关键字标签;根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。通过采用本申请所提供的技术方案,可以实现对日志信息中,存在特殊情况的日志信息进行特殊方式进行渲染,达到便于工作人员对错误日志信息进行查看的效果。
在上述各实施例的基础上,可选的,所述装置还包括:日志信息录入模块,用于在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例四
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种日志的突出显示方法,该方法包括:
对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
针对包含错误关键字的日志行片段插入预设属性的关键字标签;
根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的日志的突出显示操作,还可以执行本申请任意实施例所提供的日志的突出显示方法中的相关操作。
实施例五
本申请实施例提供了一种安卓终端,该安卓终端中可集成本申请实施例提供的日志的突出显示装置。图3为本申请实施例提供的一种安卓终端的结构示意图。如图3所示,该安卓终端可以包括:存储器301、中央处理器(Central Processing Unit,CPU)302(又称处理器,以下简称CPU)、电路板(图中未示出)和电源电路(图中未示出)。所述电路板安置在所述壳体围成的空间内部;所述CPU302和所述存储器301设置在所述电路板上;所述电源电路,用于为所述安卓终端的各个电路或器件供电;所述存储器301,用于存储可执行程序代码;所述CPU302通过读取所述存储器301中存储的可执行程序代码来运行与所述可执行程序代码对应的计算机程序,以实现以下步骤:
对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
针对包含错误关键字的日志行片段插入预设属性的关键字标签;
根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
所述安卓终端还包括:外设接口303、RF(Radio Frequency,射频)电路305、音频电路306、扬声器311、电源管理芯片308、输入/输出(I/O)子系统309、触摸屏312、其他输入/控制设备310以及外部端口304,这些部件通过一个或多个通信总线或信号线307来通信。
应该理解的是,图示安卓终端300仅仅是安卓终端的一个范例,并且安卓终端300可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
下面就本实施例提供的用于日志的突出显示安卓终端进行详细的描述,该安卓终端以手机为例。
存储器301,所述存储器301可以被CPU302、外设接口303等访问,所述存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口303,所述外设接口303可以将设备的输入和输出外设连接到CPU302和存储器301。
I/O子系统309,所述I/O子系统309可以将设备上的输入输出外设,例如触摸屏312和其他输入/控制设备310,连接到外设接口303。I/O子系统309可以包括显示控制器3091和用于控制其他输入/控制设备310的一个或多个输入控制器3092。其中,一个或多个输入控制器3092从其他输入/控制设备310接收电信号或者向其他输入/控制设备310发送电信号,其他输入/控制设备310可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器3092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏312,所述触摸屏312是用户安卓终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统309中的显示控制器3091从触摸屏312接收电信号或者向触摸屏312发送电信号。触摸屏312检测触摸屏上的接触,显示控制器3091将检测到的接触转换为与显示在触摸屏312上的用户界面对象的交互,即实现人机交互,显示在触摸屏312上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路305,主要用于建立手机与无线网络(即网络侧)的通信,实现手机与无线网络的数据接收和发送。例如收发短信息、电子邮件等。具体地,RF电路305接收并发送RF信号,RF信号也称为电磁信号,RF电路305将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路305可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC(COder-DECoder,编译码器)芯片组、用户标识模块(Subscriber Identity Module,SIM)等等。
音频电路306,主要用于从外设接口303接收音频数据,将该音频数据转换为电信号,并且将该电信号发送给扬声器311。
扬声器311,用于将手机通过RF电路305从无线网络接收的语音信号,还原为声音并向用户播放该声音。
电源管理芯片308,用于为CPU302、I/O子系统及外设接口所连接的硬件进行供电及电源管理。
本申请实施例提供的安卓终端,可以实现对日志信息中,存在特殊情况的日志信息进行特殊方式进行渲染,达到便于工作人员对错误日志信息进行查看的效果。
上述实施例中提供的日志的突出显示装置、存储介质及安卓终端可执行本申请任意实施例所提供的日志的突出显示方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的日志的突出显示方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种日志的突出显示方法,其特征在于,包括:
对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
针对包含错误关键字的日志行片段插入预设属性的关键字标签;
根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
2.根据权利要求1所述的方法,其特征在于,在对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段之前,所述方法还包括:
在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中。
3.根据权利要求2所述的方法,其特征在于,在对日志信息的录入之前,所述方法还包括:
定义一个字符串String localLog,并对所述字符串进行初始化,形成一个空白字符串String localLog=""。
4.根据权利要求3所述的方法,其特征在于,所述在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中,包括:
构建一个builder对象;
通过调用builder对象中的日志信息添加函数来将日志信息添加到builder对象中;
通过调用builder对象中的特定换行符添加函数来向builder对象中添加一个特殊的换行符;
将所有的日志信息输入完成后,将所述builder对象存储到所述空白字符串StringlocalLog=""中。
5.根据权利要求1所述的方法,其特征在于,所述针对包含错误关键字的日志行片段插入预设属性的关键字标签,包括:
定义一个临时变量tmpStr;
对所述临时变量tmpStr进行赋值,其中赋值内容包括:存在错误的日志行片段的日志信息,渲染颜色以及关键字标签;
将所述临时变量tmpStr替换所述存在错误的日志行片段的日志信息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染,包括:
对所述日志行片段进行整合,得到日志字符串对象;
对所述日志字符串对象进行格式化处理,通过调用Html.fromHtml(resultLog)函数,会返回一个Spanned的对象信息mSpanned;
调用TextView对象中的setText(mSpanned)将所述对象信息mSpanned设置到TextView对象中。
7.一种日志的突出显示装置,其特征在于,包括:
日志行片段解析模块,用于对变量localLog对象中的目标日志文件通过特定换行符进行解析,得到解析后的日志行片段;其中,所述目标日志文件包括至少一个日志信息以及各日志信息之间的特定换行符;
存在错误判定模块,用于通过封装错误关键字的自定义错误信息数组对所述日志行片段进行遍历,得到判定结果;所述判定结果包括不存在错误以及存在错误,其中存在错误的判定结果还包括所述日志行片段所包含的错误关键字;
关键字标签插入模块,用于针对包含错误关键字的日志行片段插入预设属性的关键字标签;
渲染模块,用于根据所述关键字标签,对所述日志行片段按照预设渲染方式进行渲染。
8.根据权利要求7所述的装置,其特征在于,还包括:
日志信息录入模块,用于在对日志信息的录入过程中,在每个日志信息添加完成后,添加一个特定换行符,将形成的整个日志文件存储到变量localLog对象中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的日志的突出显示方法。
10.一种安卓终端,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一所述的日志的突出显示方法。
CN201810689879.3A 2018-06-28 2018-06-28 一种日志的突出显示方法、装置、存储介质及安卓终端 Active CN108959199B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810689879.3A CN108959199B (zh) 2018-06-28 2018-06-28 一种日志的突出显示方法、装置、存储介质及安卓终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810689879.3A CN108959199B (zh) 2018-06-28 2018-06-28 一种日志的突出显示方法、装置、存储介质及安卓终端

Publications (2)

Publication Number Publication Date
CN108959199A true CN108959199A (zh) 2018-12-07
CN108959199B CN108959199B (zh) 2022-08-16

Family

ID=64487810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810689879.3A Active CN108959199B (zh) 2018-06-28 2018-06-28 一种日志的突出显示方法、装置、存储介质及安卓终端

Country Status (1)

Country Link
CN (1) CN108959199B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315779A (zh) * 2017-06-05 2017-11-03 海致网络技术(北京)有限公司 日志分析方法和系统
CN109726091A (zh) * 2018-12-28 2019-05-07 乐蜜有限公司 一种日志管理方法及相关装置
CN110297623A (zh) * 2019-07-03 2019-10-01 广州虎牙科技有限公司 日志展示方法及装置
CN111597093A (zh) * 2019-02-20 2020-08-28 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111968735A (zh) * 2020-01-07 2020-11-20 济南鸿泰医疗管理集团有限公司 一种设备状态管理方法及装置
CN113360467A (zh) * 2020-03-05 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种日志文件的解析方法、装置、介质及计算机设备
CN113419536A (zh) * 2021-07-07 2021-09-21 江苏云工场信息技术有限公司 一种vga无人自动驾驶控制方法及系统
CN114756183A (zh) * 2022-06-16 2022-07-15 深圳市信润富联数字科技有限公司 数据打印方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1740968A (zh) * 2004-08-27 2006-03-01 华为技术有限公司 工具命令语言集成开发系统
CN101853288A (zh) * 2010-05-19 2010-10-06 马晓普 基于文档实时监控可配置的全文检索服务系统
CN103605556A (zh) * 2013-10-23 2014-02-26 中国运载火箭技术研究院 虚拟试验对象一体化构建系统及方法
CN105930348A (zh) * 2016-04-06 2016-09-07 广州广电运通金融电子股份有限公司 一种基于日志分析的故障定位方法及装置
CN108021540A (zh) * 2017-11-09 2018-05-11 中国科学院信息工程研究所 一种面向Hadoop的通用文本格式的解析方法及工具
CN108052452A (zh) * 2017-12-29 2018-05-18 北京酷我科技有限公司 一种日志验收的可视优化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1740968A (zh) * 2004-08-27 2006-03-01 华为技术有限公司 工具命令语言集成开发系统
CN101853288A (zh) * 2010-05-19 2010-10-06 马晓普 基于文档实时监控可配置的全文检索服务系统
CN103605556A (zh) * 2013-10-23 2014-02-26 中国运载火箭技术研究院 虚拟试验对象一体化构建系统及方法
CN105930348A (zh) * 2016-04-06 2016-09-07 广州广电运通金融电子股份有限公司 一种基于日志分析的故障定位方法及装置
CN108021540A (zh) * 2017-11-09 2018-05-11 中国科学院信息工程研究所 一种面向Hadoop的通用文本格式的解析方法及工具
CN108052452A (zh) * 2017-12-29 2018-05-18 北京酷我科技有限公司 一种日志验收的可视优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DULUNAR: "Perl中正则表达式用法总结", 《生信技能树》 *
FISH: "stdout log日志实时高亮显示", 《SEGMENTFAULT》 *
情定诺坎普: "设置TextView个别文字字体颜色格式", 《博客园》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315779A (zh) * 2017-06-05 2017-11-03 海致网络技术(北京)有限公司 日志分析方法和系统
CN109726091A (zh) * 2018-12-28 2019-05-07 乐蜜有限公司 一种日志管理方法及相关装置
CN109726091B (zh) * 2018-12-28 2022-07-19 卓米私人有限公司 一种日志管理方法及相关装置
CN111597093A (zh) * 2019-02-20 2020-08-28 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN111597093B (zh) * 2019-02-20 2024-04-16 阿里巴巴集团控股有限公司 一种异常处理方法、装置及其设备
CN110297623A (zh) * 2019-07-03 2019-10-01 广州虎牙科技有限公司 日志展示方法及装置
CN111968735A (zh) * 2020-01-07 2020-11-20 济南鸿泰医疗管理集团有限公司 一种设备状态管理方法及装置
CN113360467A (zh) * 2020-03-05 2021-09-07 武汉斗鱼鱼乐网络科技有限公司 一种日志文件的解析方法、装置、介质及计算机设备
CN113360467B (zh) * 2020-03-05 2022-07-05 武汉斗鱼鱼乐网络科技有限公司 一种日志文件的解析方法、装置、介质及计算机设备
CN113419536A (zh) * 2021-07-07 2021-09-21 江苏云工场信息技术有限公司 一种vga无人自动驾驶控制方法及系统
CN114756183A (zh) * 2022-06-16 2022-07-15 深圳市信润富联数字科技有限公司 数据打印方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108959199B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN108959199A (zh) 一种日志的突出显示方法、装置、存储介质及安卓终端
CN111625452B (zh) 流量回放方法和系统
CN111045655B (zh) 一种页面渲染的方法、装置、渲染服务器和存储介质
CN111831542B (zh) Api应用调测方法及装置、存储介质
CN107451112B (zh) 表格工具数据检查方法、装置、终端设备及存储介质
US20230297767A1 (en) Document editing method and apparatus, and electronic device
CN108804484A (zh) 数据审批方法、设备和计算机可读存储介质
CN109889894A (zh) 媒体文件解码方法、装置及存储介质
CN108933968A (zh) 一种消息格式的转换方法、装置、存储介质及安卓终端
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN108415998A (zh) 应用依赖关系更新方法、终端、设备及存储介质
CN116360735A (zh) 一种表单生成方法、装置、设备和介质
CN112671878B (zh) 一种区块链的信息订阅方法、装置、服务器和存储介质
CN109522021A (zh) 参数回调处理方法、装置、电子设备及存储介质
CN108882006A (zh) 一种消息格式的转换方法、装置、存储介质及安卓终端
CN109005469A (zh) 一种消息格式的转换方法、装置、存储介质及安卓终端
CN114647411A (zh) 编程界面加载方法、装置、电子设备及存储介质
CN114281807A (zh) 数据质量稽核方法、装置、设备及存储介质
CN107968799A (zh) 一种信息获取方法、终端设备及系统
CN112287643A (zh) 消息监听方法、装置、设备及计算机可读存储介质
CN111258628A (zh) 一种规则文件比对方法、装置、可读存储介质及终端设备
CN112311811B (zh) 全链路跟踪方法、装置、存储介质以及服务器
CN108614805A (zh) 使用qml显示彩色表情的方法及系统、服务器及介质
CN115098075A (zh) 一种多系统集成方法、装置、电子设备及介质
CN113900895B (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