CN113268462B - 基于嵌入式设备的日志管理方法、装置及*** - Google Patents

基于嵌入式设备的日志管理方法、装置及*** Download PDF

Info

Publication number
CN113268462B
CN113268462B CN202010092112.XA CN202010092112A CN113268462B CN 113268462 B CN113268462 B CN 113268462B CN 202010092112 A CN202010092112 A CN 202010092112A CN 113268462 B CN113268462 B CN 113268462B
Authority
CN
China
Prior art keywords
log
data
object attribute
output
module
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
CN202010092112.XA
Other languages
English (en)
Other versions
CN113268462A (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.)
Xian Novastar Electronic Technology Co Ltd
Original Assignee
Xian Novastar Electronic 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 Xian Novastar Electronic Technology Co Ltd filed Critical Xian Novastar Electronic Technology Co Ltd
Priority to CN202010092112.XA priority Critical patent/CN113268462B/zh
Publication of CN113268462A publication Critical patent/CN113268462A/zh
Application granted granted Critical
Publication of CN113268462B publication Critical patent/CN113268462B/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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

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

Abstract

本发明实施例提供一种基于嵌入式设备的日志管理方法、装置和***。所述基于嵌入式设备的日志管理方法例如包括:获取输入参数,其中输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级;根据日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性;根据日志等级和所述目标配置数据对日志数据进行过滤处理,以得到可输出日志数据和对应可输出日志数据的目标输出设备对象属性,其中目标输出设备对象属性属于至少一个输出设备对象属性;根据日志类对象属性对可输出日志数据进行加工,以得到待输出日志数据;以及根据目标输出设备对象属性输出待输出日志数据。

Description

基于嵌入式设备的日志管理方法、装置及***
技术领域
本发明涉及数字信息传输技术领域,尤其涉及一种基于嵌入式设备的日志管理方法、一种基于嵌入式设备的日志管理装置和一种基于嵌入式设备的日志管理***。
背景技术
由于嵌入式设备的硬件资源有限,因此在嵌入式***调试方面的方法较为单一。嵌入式设备一般采用日志的方式进行调试,一般来说,日志信息包括执行过程信息、错误警告信息、状态统计信息等内容。根据不同场景的调试需要,对于获取各种日志信息的倾向性不同,对于日志信息的输出设备的需求也不同,例如:开发过程中问题调试时用户更关注错误警告信息;现场问题调试时用户更关注执行过程和错误警告信息;日志信息输出设备可能是串口终端,也可能是日志存储的文件写接口。传统的日志调试需要在程序代码中预先加入日志信息输出代码,在代码编译阶段静态地控制调试信息的输出,这样的日志管理方法功能单一、适用性差,且调试效率较低。
因此,如何提高嵌入式设备日志管理的功能性和适用性成为亟待解决的技术问题。
发明内容
因此,为克服现有技术中的缺陷和不足,本发明实施例提供一种基于嵌入式设备的日志管理方法、一种基于嵌入式设备的日志管理装置和一种基于嵌入式设备的日志管理***,以解决嵌入式设备现有日志管理方法功能单一、适用性差和调试效率较低的问题。
一方面,本发明实施例提供的一种基于嵌入式设备的日志管理方法,包括:获取输入参数,其中所述输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级;根据所述日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性;根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,其中所述目标输出设备对象属性属于所述至少一个输出设备对象属性;根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据;以及根据所述目标输出设备对象属性输出所述待输出日志数据。
本实施例提供的基于嵌入式设备的日志管理方法通过获取的输入参数和目标配置数据对日志数据进行过滤、加工并输出,实现日志管理,解决了嵌入式设备现有日志管理方法功能单一、适用性差和调试效率较低的问题。通过目标配置数据的日志类对象属性、数据路径对象属性和输出设备对象属性提高了日志管理方法的灵活性,并且可支持多种日志输出设备。此外,通过对日志数据进行过滤和加工可使得日志信息显示样式丰富,可满足不同的调试场景,提高了日志管理方法的适用性。
在本发明的一个实施例中,所述根据所述日志类对象名称查找目标配置数据,包括:根据所述日志类对象名称查找所述日志类对象属性;根据所述日志类对象名称查找所述至少一个数据路径对象属性;根据所述至少一个数据路径对象属性中每一个所述数据路径对象属性中包含的目标输出设备对象名称查找所述至少一个输出设备对象属性中相对应的输出设备对象属性。
在本发明的一个实施例中,所述根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,包括:比较所述日志等级和所述日志类对象属性中包含的第一过滤门槛等级,以得到表征所述日志数据是否被过滤的第一比较结果;响应于所述第一比较结果表征所述日志数据未被过滤,比较所述日志等级和指定数据路径对象属性中包含的第二过滤门槛等级,以得到表征所述日志数据是否被过滤的第二比较结果,其中所述指定数据路径对象属性为所述至少一个数据路径对象属性中的任意一个数据路径对象属性;响应于所述第一比较结果表征所述日志数据未被过滤,判断对应所述指定数据路径对象属性的所述输出设备对象属性中包含的启用开关是否为开启状态,并响应于所述启用开关为开启状态,将所述日志数据确定为对应所述指定数据路径对象属性的所述输出设备对象属性的可输出日志数据。
在本发明的一个实施例中,所述根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据,包括:根据所述日志类对象属性中包含的附加信息样式信息、所述日志类对象名称、所述日志等级,得到日志附加信息文本;根据所述日志附加信息文本和所述可输出日志数据得到待输出日志文本;根据所述日志类对象属性中包含的显示效果信息,增加ANSI转义序列至所述待输出日志文本,以得到所述待输出日志数据。
在本发明的一个实施例中,所述基于嵌入式设备的日志管理方法在所述获取输入参数之前还包括:根据用户配置代码创建并配置至少一个日志类对象、至少一个数据路径对象和/或至少一个输出设备对象,其中所述至少一个日志类对象具有各自的日志类对象属性,所述至少一个数据路径对象具有各自的数据路径对象属性,所述至少一个输出设备对象具有各自的输出设备对象属性。
另一方面,本发明实施例提供的一种基于嵌入式设备的日志管理装置,包括:参数获取模块,用于获取输入参数,其中所述输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级;数据查找模块,用于根据所述日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性;日志过滤模块,用于根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,其中所述目标输出设备对象属性属于所述至少一个输出设备对象属性;日志加工模块,用于根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据;以及日志输出模块,用于根据所述目标输出设备对象属性输出所述待输出日志数据。
本实施例的基于嵌入式设备的日志管理装置设置有参数获取模块、数据查找模块、日志过滤模块、日志加工模块和日志输出模块,从而可以通过获取的输入参数和目标配置数据对日志数据进行过滤、加工并输出,实现日志管理,解决了嵌入式设备现有日志管理方法功能单一、适用性差和调试效率较低的问题。通过目标配置数据的日志类对象属性、数据路径对象属性和输出设备对象属性提高了日志管理方法的灵活性,并且可支持多种日志输出设备。此外,通过对日志数据进行过滤和加工可使得日志信息显示样式丰富,可满足不同的调试场景,提高了日志管理方法的适用性。
在本发明的一个实施例中,所述数据查找模块包括:第一查找子模块,用于根据所述日志类对象名称查找所述日志类对象属性;第二查找子模块,用于根据所述日志类对象名称查找所述至少一个数据路径对象属性;第三查找子模块,用于根据所述至少一个数据路径对象属性中每一个所述数据路径对象属性中包含的目标输出设备对象名称查找所述至少一个输出设备对象属性中相对应的输出设备对象属性。
在本发明的一个实施例中,所述日志过滤模块包括:第一过滤子模块,用于比较所述日志等级和所述日志类对象属性中包含的第一过滤门槛等级,以得到表征所述日志数据是否被过滤的第一比较结果;第二过滤子模块,响应于所述第一比较结果表征所述日志数据未被过滤,比较所述日志等级和指定数据路径对象属性中包含的第二过滤门槛等级,以得到表征所述日志数据是否被过滤的第二比较结果,其中所述指定数据路径对象属性为所述至少一个数据路径对象属性中的任意一个数据路径对象属性;第三过滤子模块,用于响应于所述第二比较结果表征所述日志数据未被过滤,判断对应所述指定数据路径对象属性的所述输出设备对象属性中包含的启用开关是否为开启状态,并响应于所述启用开关为开启状态,将所述日志数据确定为对应所述指定数据路径对象属性的所述输出设备对象属性的可输出日志数据。
在本发明的一个实施例中,所述日志加工模块包括:第一加工子模块,用于根据所述日志类对象属性中包含的附加信息样式信息、所述日志类对象名称、所述日志等级,得到日志附加信息文本;第二加工子模块,用于根据所述日志附加信息文本和所述可输出日志数据得到待输出日志文本;第三加工子模块,用于根据所述日志类对象属性中包含的显示效果信息,增加ANSI转义序列至所述待输出日志文本,以得到所述待输出日志数据。
在本发明的一个实施例中,所述基于嵌入式设备的日志管理装置还包括:配置管理模块,用于根据用户配置代码创建并配置至少一个日志类对象、至少一个数据路径对象和/或至少一个输出设备对象,其中所述至少一个日志类对象具有各自的日志类对象属性,所述至少一个数据路径对象具有各自的数据路径对象属性,所述至少一个输出设备对象具有各自的输出设备对象属性。
再一方面,本发明实施例提供的一种基于嵌入式设备的日志管理***,包括:处理器和存储器;其中,所述存储器存储由所述处理器执行的指令,且所述指令使得所述处理器执行操作以进行如前述的基于嵌入式设备的日志管理方法。
又一方面,本发明实施例提供的一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,存储的所述计算机程序被处理器执行时能够实现如前述的基于嵌入式设备的日志管理方法。
上述一个或多个技术方案可以具有以下优点或有益效果:通过获取的输入参数和目标配置数据对日志数据进行过滤、加工并输出,实现日志管理,解决了嵌入式设备现有日志管理方法功能单一、适用性差和调试效率较低的问题。通过目标配置数据的日志类对象属性、数据路径对象属性和输出设备对象属性提高了日志管理方法的灵活性,并且可支持多种日志输出设备。此外,通过对日志数据进行过滤和加工可使得日志信息显示样式丰富,可满足不同的调试场景,提高了日志管理方法的适用性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例的一种基于嵌入式设备的日志管理方法的流程示意图。
图2为图1中S20步骤的流程示意图。
图3为图1中S30步骤的流程示意图。
图4为图1中S40步骤的流程示意图。
图5A为本发明第一实施例的另一种基于嵌入式设备的日志管理方法的流程示意图。
图5B为应用本发明第一实施例的基于嵌入式设备的日志管理方法的一种***的框架示意图。
图6为本发明第二实施例的一种基于嵌入式设备的日志管理装置的模块示意图。
图7为图6中数据查找模块的模块示意图。
图8为图6中日志过滤模块的模块示意图。
图9为图6中日志加工模块的模块示意图。
图10为本发明第二实施例的另一种基于嵌入式设备的日志管理装置的模块示意图。
图11为本发明第三实施例提供的一种基于嵌入式设备的日志管理***的结构示意图。
图12为本发明第四实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
【第一实施例】
如图1所示,本发明第一实施例提供的一种基于嵌入式设备的日志管理方法,用于解决嵌入式设备现有日志管理方法功能单一、适用性差和调试效率较低的问题。所述基于嵌入式设备的日志管理方法,包括以下步骤:
S10,获取输入参数,其中所述输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级;
S20,根据所述日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性;
S30,根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,其中所述目标输出设备对象属性属于所述至少一个输出设备对象属性;
S40,根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据;以及
S50,根据所述目标输出设备对象属性输出所述待输出日志数据。
其中,如图2所示,步骤S20根据所述日志类对象名称查找目标配置数据包括:
S21,根据所述日志类对象名称查找所述日志类对象属性;
S22,根据所述日志类对象名称查找所述至少一个数据路径对象属性;
S23,根据所述至少一个数据路径对象属性中每一个所述数据路径对象属性中包含的目标输出设备对象名称查找所述至少一个输出设备对象属性中相对应的输出设备对象属性。
如图3所示,步骤S30根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,包括:
S31,比较所述日志等级和所述日志类对象属性中包含的第一过滤门槛等级,以得到表征所述日志数据是否被过滤的第一比较结果;
S32,响应于所述第一比较结果表征所述日志数据未被过滤,比较所述日志等级和指定数据路径对象属性中包含的第二过滤门槛等级,以得到表征所述日志数据是否被过滤的第二比较结果,其中所述指定数据路径对象属性为所述至少一个数据路径对象属性中的任意一个数据路径对象属性;
S33,响应于所述第一比较结果表征所述日志数据未被过滤,判断对应所述指定数据路径对象属性的所述输出设备对象属性中包含的启用开关是否为开启状态,并响应于所述启用开关为开启状态,将所述日志数据确定为对应所述指定数据路径对象属性的所述输出设备对象属性的可输出日志数据。
如图4所示,步骤S40所述根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据,包括:
S41,根据所述日志类对象属性中包含的附加信息样式信息、所述日志类对象名称、所述日志等级,得到日志附加信息文本;
S42,根据所述日志附加信息文本和所述可输出日志数据得到待输出日志文本;
S43,根据所述日志类对象属性中包含的显示效果信息,增加ANSI转义序列至所述待输出日志文本,以得到所述待输出日志数据。
如图5A所示,本实施例的基于嵌入式设备的日志管理方法在步骤S10获取输入参数之前还包括:
S00,根据用户配置代码创建并配置至少一个日志类对象、至少一个数据路径对象和/或至少一个输出设备对象,其中所述至少一个日志类对象具有各自的日志类对象属性,所述至少一个数据路径对象具有各自的数据路径对象属性,所述至少一个输出设备对象具有各自的输出设备对象属性。
为了便于更清楚地理解本实施例,下面结合图5B,对本实施例的基于嵌入式设备的日志管理方法进行详细说明。
图5B示出了应用本实施例的基于嵌入式设备的日志管理方法的一种***,如图5B所示,此***提供了日志配置单元20和日志执行单元10。具体地,日志配置单元20主要用于维护所有的日志配置数据,用户使用配置API来配置代码,以使日志配置单元20可根据配置API创建并维护日志配置数据。日志配置单元20可例如包括日志信源模块21、日志路由模块22和日志信宿模块23,每个模块用于管理各自的抽象对象并维护配置信息。需要说明的是,本实施例的单元、模块均为虚拟模块。
具体地,日志信源模块21用于管理一个或多个日志类对象,所述日志类对象为用于管理日志数据的抽象概念,日志类对象属性可例如包括:日志类对象名称、描述信息、第一过滤门槛等级、附加信息样式信息、显示效果信息。其中,日志类对象名称为日志类对象的唯一标识符,各个日志类对象名称互不相同。描述信息为日志类对象的解释说明,不影响具体业务逻辑。第一过滤门槛等级指定了日志数据可输出的最低过滤门槛等级,以满足不同场景所需输出的不同等级的日志数据。第一过滤门槛等级中的等级表征日志数据的重要程度,举例来说,日志数据的等级按照从高到低可分为:Assert(断言)、Error(错误)、Warning(警告)、Info(信息)和Debug(调试)。附加信息样式信息用于指定附加信息包括的具体内容,附加信息可例如包括日志数据所属的日志类对象名称、日志等级、日志时间戳、日志产生函数名和日志产生行号等。显示效果信息可例如为包括文字前景色、背景色和文字粗细的文本显示样式,通过在日志数据输出时添加输出设备支持的控制字符以改变输出设备上日志数据的显示样式,实现不同的日志显示效果。
值得一提的是,上述日志类对象和日志类对象属性由用户进行自定义,用户可根据日志数据在逻辑上具备同一性为原则定义日志类对象,并根据不同的需求配置日志类对象属性。举例来说,用户可根据模块定义日志类对象,以实现独立控制各个模块输出日志信息;也可按照业务流程定义日志类对象,以实现追踪跨模块跨代码层次的具体业务流程并汇总输出;也可以按照调试兴趣点定义日志类对象,以实现代码调试中关注的零散调试信息汇总输出;也可按照日志严重性定义日志类对象,以实现将代码中的严重错误或异常汇总输出。通过用户自定义日志类对象及日志类对象属性,提高了本实施的日志管理方法的应用灵活性和实用性。
承上述,日志信宿模块23用于管理一个或多个输出设备对象,输出设备对象表征日志数据输出的目的设备,输出设备可例如用于接收日志数据并按照用户指定方式处理日志数据。输出设备对象属性可例如包括:输出设备对象名称、描述信息、启用开关和日志输出操作函数。其中,输出设备对象名称为输出设备对象的唯一标识符,各个输出设备对象名称互不相同。描述信息为对输出设备对象的解释说明,不影响具体业务逻辑。启用开关用于控制是否启用该输出设备。日志输出操作函数为日志数据输出的执行函数,举例来说,日志输出操作函数可以是串口终端、Telnet终端的实时输出设备,也可以是用于日志存储的文件写接口,还可以是GUI(Graphical User Interface,图像用户界面)打印接口。
值得一提的是,上述输出设备对象和输出设备对象属性可由用户自定义,支持定义多种输出设备,可以满足多种不同场景的使用需求。
承上述,日志路由模块22用于管理一个或多个数据路径对象,数据路径对象用于将日志类对象和输出设备对象绑定在一起,使得日志类对象的日志数据在处理后输出至指定的输出设备。数据路径对象属性可例如包括:源日志类对象名称、目的输出设备对象名称和第二过滤门槛等级。其中,源日志类对象名称指定了数据路径上日志数据的来源。目的输出设备对象名称指定了数据路径上日志数据的输出设备。第二过滤门槛等级指定了可通过数据路径的日志数据的最低门槛等级。
值得一提的是,上述数据路径对象和数据路径对象属性可由用户自定义,用户可以配置数据路径对象从而指定日志数据输出的输出设备。举例来说,通过创建多个数据路径对象,用户可以控制不同日志数据输出至不同的输出设备,也可以控制相同的日志数据输出至不同的输出设备。用户也可以通过配置数据路径对象中的源日志类对象名称,以使多个不同的日志数据输出至同一输出设备。举例来说,源日志类名称可例如允许通配符处理(例如input*),例如日志类对象包括“input a”、“input b”、“input c”,输出设备对象为“serial”,用户通过创建一个数据路径对象,定义数据路径对象属性中的源日志类对象名称为“input*”、输出设备对象名称为“serial”,即该数据路径对象可实现所有名称以“input”开头的日志类对象的日志数据输出至“serial”输出设备。
上述日志类对象、输出设备对象和数据路径对象的创建和配置可例如通过配置API实现,当然也可以通过配置宏的形式在代码编译时完成上述对象的创建和配置,本发明实施例并不以此为限。具体地,主要配置API可例如包括:
创建日志类对象:bool Log_Src_Register(const char*name,const char*desc);
创建输出设备对象:bool Log_Sink_Register(const char*name,const char*desc,sink_proc_t*proc);
创建数据路径对象:bool Log_Bind(const char*src_name,const char*sink_name,en_lvl lvl_filter);
设置附加信息样式信息:bool Log_Src_SetFmt(const char*name,en_lvl lvl,char fmt);
设置显示效果信息:bool Log_Src_SetStyle(const char*name,en_lvl lvl,char style);
设置第一过滤门槛等级:bool Log_Src_SetLvlFilter(const char*name,en_lvllvl_filter);
设置输出操作函数:bool Log_Sink_SetProc(const char*name,sink_proc_t*proc);
设置启用开关:bool Log_Sink_SetEn(char is_enable);
设置第二过滤门槛等级:bool Log_Path_SetLvlFilter(const char*name,en_lvl lvl_filter);
上述配置API仅为举例说明,本发明实施例并不以此为限。
在需要进行日志数据输出时,用户可例如配置日志API以供日志执行单元10调用日志API对日志数据进行处理,日志API可例如为:
bool Log_Printf(const char*src_name,en_lvl lvl,int line,const char*fun,const char*fmt,...);
具体地,日志执行单元10主要用于根据日志配置单元20提供的配置数据(日志类对象属性、数据路径对象属性和输出设备对象属性)对需要输出的日志数据进行过滤、加工及输出。日志执行单元10可例如包括日志过滤模块11、日志加工模块12和日志输出模块13,以用于对需要输出的日志数据进行过滤、加工及输出。需要说明的是,本实施例的单元、模块均为虚拟模块。
承上述,用户可例如在需要输出日志的代码中配置上述日志API,以使用户需要执行代码时计算机根据用户配置的日志API执行日志数据输出。具体地,日志API的配置参数可例如包括:日志类对象名称、日志数据、日志等级和日志相关信息,其中日志类对象名称为需要输出的日志数据的日志类对象的唯一标识,以用于根据此唯一标识查找对应的目标配置数据,当然,本发明实施例并不以此为限,也可以选取其他参数作为日志类对象的唯一标识;日志相关信息用于生成日志附加信息。具体地,计算机例如响应用户执行代码操作进行日志数据输出时的具体处理步骤可例如为:
步骤一:通过调用日志API获取输入参数(即需要输出的日志数据的相关参数),输入参数包括日志类对象名称、日志数据和所述日志数据的日志等级。(此步骤对应上述步骤S10)
步骤二:日志过滤模块11根据输入参数中的日志类对象名称在日志配置单元20提供的配置数据(日志类对象属性、数据路径对象属性和输出设备对象属性)中找到对应的日志类对象属性,比较所述日志数据的日志等级和对应的日志类对象属性中的第一过滤门槛等级,若日志等级大于或等于第一过滤门槛等级,则继续执行,否则结束执行。(此步骤对应上述步骤S31)
步骤三:日志过滤模块11根据输入参数中的日志类对象名称,在日志配置单元20提供的配置数据中查找对应的数据路径对象,根据对应的数据路径对象属性中的目的输出设备对象名称查找对应的输出设备对象。若未找到对应的输出设备对象,则结束执行。值得一提的是,在日志配置单元20提供的配置数据中查找的对应的数据路径对象可为多个,这样一来,可以实现相同的日志数据输出至多个不同的输出设备,满足不同的应用场景。(此步骤对应上述步骤S20)
步骤四:日志过滤模块11比较日志等级和对应数据路径对象属性中的第二过滤门槛等级,若日志等级大于或等于第二过滤门槛等级,则继续执行,否则结束执行。(此步骤对应上述步骤S32)
步骤五:日志过滤模块11判断对应的输出设备对象属性中包含的启用开关是否为开启状态,若所述启用开关为开启状态,则所述日志数据确定为对应数据路径对象属性的对应输出设备对象属性的可输出日志数据。(此步骤对应上述步骤S33)
步骤六:日志加工模块12根据日志等级、日志相关信息和对应的日志类对象属性中包含的附加信息样式信息得到日志附加信息文本。日志附加信息文本的具体形式可例如为:“[W-20100101-06:30:45-main-165-json tx]”,其中“W”表示日志等级为Warning,“20100101-06:30:45”为当前时间,“main”为当前日志所在函数名,“165”为当前日志所在行号,“json tx”为当前日志所属日志类名称)。(此步骤对应上述步骤S41)
步骤七:日志加工模块12根据日志附加信息文本和可输出日志数据进行加工得到待输出日志文本。(此步骤对应上述步骤S42)
步骤八:日志加工模块12根据对应的日志类对象属性中的显示效果信息,增加相应的ANSI转义序列至待输出日志文本,得到待输出日志数据。(此步骤对应上述步骤S43)
步骤九:日志输出模块13调用对应的输出设备对象属性中的日志输出操作函数,将待输出日志数据输出至目的输出设备。(此步骤对应上述步骤S50)
通过上述步骤即完成了日志数据的输出,需要说明的是,步骤二、三、四和五即日志过滤模块11执行的日志过滤步骤的顺序可根据实际情况进行调换,满足不同场景的需求即可,本发明实施例并不以此为限。此外,当步骤三在日志配置单元20提供的配置数据中查找到对应的数据路径对象为多个时,针对每个对应的数据路径对象分别执行步骤四至步骤九,这样一来,可以实现相同的日志数据输出至多个不同的输出设备,满足不同的应用场景。当然,本实施例并不以此为限。
综上所述,本实施例的基于嵌入式设备的日志管理方法通过获取的输入参数和目标配置数据对日志数据进行过滤、加工并输出,实现日志管理,解决了嵌入式设备现有日志管理方法功能单一、适用性差和调试效率较低的问题。通过目标配置数据的日志类对象属性、数据路径对象属性和输出设备对象属性提高了日志管理方法的灵活性,并且可支持多种日志输出设备。此外,通过对日志数据进行过滤和加工可使得日志信息显示样式丰富,可满足不同的调试场景,提高了日志管理方法的适用性。
【第二实施例】
如图6所示,本发明第二实施例提供了一种基于嵌入式设备的日志管理装置30。基于嵌入式设备的日志管理装置30例如包括参数获取模块110、数据查找模块120、日志过滤模块130、日志加工模块140和日志输出模块150。
参数获取模块110,用于获取输入参数,其中所述输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级。
数据查找模块120,用于根据所述日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性。
日志过滤模块130,用于根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,其中所述目标输出设备对象属性属于所述至少一个输出设备对象属性。
日志加工模块140,用于根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据。
日志输出模块150,用于根据所述目标输出设备对象属性输出所述待输出日志数据。
其中,如图7所示,数据查找模块120包括:第一查找子模块121、第二查找子模块122和第三查找子模块123。
第一查找子模块121,用于根据所述日志类对象名称查找所述日志类对象属性。
第二查找子模块122,用于根据所述日志类对象名称查找所述至少一个数据路径对象属性。
第三查找子模块123,用于根据所述至少一个数据路径对象属性中每一个所述数据路径对象属性中包含的目标输出设备对象名称查找所述至少一个输出设备对象属性中相对应的输出设备对象属性。
如图8所示,日志过滤模块130包括:第一过滤子模块131、第二过滤子模块132和第三过滤子模块133。
第一过滤子模块131,用于比较所述日志等级和所述日志类对象属性中包含的第一过滤门槛等级,以得到表征所述日志数据是否被过滤的第一比较结果。
第二过滤子模块132,响应于所述第一比较结果表征所述日志数据未被过滤,比较所述日志等级和指定数据路径对象属性中包含的第二过滤门槛等级,以得到表征所述日志数据是否被过滤的第二比较结果,其中所述指定数据路径对象属性为所述至少一个数据路径对象属性中的任意一个数据路径对象属性。
第三过滤子模块133,用于响应于所述第二比较结果表征所述日志数据未被过滤,判断对应所述指定数据路径对象属性的所述输出设备对象属性中包含的启用开关是否为开启状态,并响应于所述启用开关为开启状态,将所述日志数据确定为对应所述指定数据路径对象属性的所述输出设备对象属性的可输出日志数据。
如图9所示,日志加工模块140包括:第一加工子模块141、第二加工子模块142和第三加工子模块143。
第一加工子模块141,用于根据所述日志类对象属性中包含的附加信息样式信息、所述日志类对象名称、所述日志等级,得到日志附加信息文本。
第二加工子模块142,用于根据所述日志附加信息文本和所述可输出日志数据得到待输出日志文本。
第三加工子模块143,用于根据所述日志类对象属性中包含的显示效果信息,增加ANSI转义序列至所述待输出日志文本,以得到所述待输出日志数据。
参见图10,本实施例的基于嵌入式设备的日志管理装置30还包括配置管理模块100,配置管理模块100用于根据用户配置代码创建并配置至少一个日志类对象、至少一个数据路径对象和/或至少一个输出设备对象,其中所述至少一个日志类对象具有各自的日志类对象属性,所述至少一个数据路径对象具有各自的数据路径对象属性,所述至少一个输出设备对象具有各自的输出设备对象属性。
本实施例中的基于嵌入式设备的日志管理装置30中的各模块之间的具体工作过程和技术效果参见前述第一实施例的描述。
【第三实施例】
参见图11,本发明第三实施例提供了一种基于嵌入式设备的日志管理***200。基于嵌入式设备的日志管理***200例如包括存储器220和与存储器220连接的处理器210。存储器220可例如为非易失性存储器,其上存储有计算机程序221。处理器210可例如为嵌入式处理器。处理器210运行计算机程序221时执行前述第一实施例中的基于嵌入式设备的日志管理方法。
【第四实施例】
如图12所示,本发明第四实施例提供了一种计算机可读存储介质300。计算机可读存储介质300例如为非易失性存储器,其例如为:磁介质(如硬盘、软盘和磁带),光介质(如CDROM盘和DVD),磁光介质(如光盘)以及专门构造为用于存储和执行计算机可执行指令的硬件装置(如只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。计算机可读存储介质300上存储有计算机可执行指令310。计算机可读存储介质300可由一个或多个处理器或处理装置来执行计算机可执行指令310,以实施前述第一实施例中的基于嵌入式设备的日志管理方法。
此外,可以理解的是,前述各个实施例仅为本发明的示例性说明,在技术特征不冲突、结构不矛盾、不违背本发明的发明目的前提下,各个实施例的技术方案可以任意组合、搭配使用。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多路单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多路网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元/模块可以集成在一个处理单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一个单元/模块中。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元/模块的形式实现。
上述以软件功能单元/模块的形式实现的集成的单元/模块,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)的一个或多个处理器执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种基于嵌入式设备的日志管理方法,其特征在于,包括:
获取输入参数,其中所述输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级;
根据所述日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性;
根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,其中所述目标输出设备对象属性属于所述至少一个输出设备对象属性;
根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据;以及
根据所述目标输出设备对象属性输出所述待输出日志数据;
其中,所述根据所述日志类对象名称查找目标配置数据,包括:
根据所述日志类对象名称查找所述日志类对象属性;
根据所述日志类对象名称查找所述至少一个数据路径对象属性;
根据所述至少一个数据路径对象属性中每一个所述数据路径对象属性中包含的目标输出设备对象名称查找所述至少一个输出设备对象属性中相对应的输出设备对象属性;
所述根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,包括:
比较所述日志等级和所述日志类对象属性中包含的第一过滤门槛等级,以得到表征所述日志数据是否被过滤的第一比较结果;
响应于所述第一比较结果表征所述日志数据未被过滤,比较所述日志等级和指定数据路径对象属性中包含的第二过滤门槛等级,以得到表征所述日志数据是否被过滤的第二比较结果,其中所述指定数据路径对象属性为所述至少一个数据路径对象属性中的任意一个数据路径对象属性;
响应于所述第一比较结果表征所述日志数据未被过滤,判断对应所述指定数据路径对象属性的所述输出设备对象属性中包含的启用开关是否为开启状态,并响应于所述启用开关为开启状态,将所述日志数据确定为对应所述指定数据路径对象属性的所述输出设备对象属性的可输出日志数据。
2.如权利要求1所述的基于嵌入式设备的日志管理方法,其特征在于,所述根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据,包括:
根据所述日志类对象属性中包含的附加信息样式信息、所述日志类对象名称、所述日志等级,得到日志附加信息文本;
根据所述日志附加信息文本和所述可输出日志数据得到待输出日志文本;
根据所述日志类对象属性中包含的显示效果信息,增加ANSI转义序列至所述待输出日志文本,以得到所述待输出日志数据。
3.如权利要求1至2任意一项所述的基于嵌入式设备的日志管理方法,其特征在于,在所述获取输入参数之前还包括:
根据用户配置代码创建并配置至少一个日志类对象、至少一个数据路径对象和/或至少一个输出设备对象,其中所述至少一个日志类对象具有各自的日志类对象属性,所述至少一个数据路径对象具有各自的数据路径对象属性,所述至少一个输出设备对象具有各自的输出设备对象属性。
4.一种基于嵌入式设备的日志管理装置,其特征在于,包括:
参数获取模块,用于获取输入参数,其中所述输入参数包含日志类对象名称、日志数据和所述日志数据的日志等级;
数据查找模块,用于根据所述日志类对象名称查找目标配置数据,其中所述目标配置数据包含日志类对象属性、至少一个数据路径对象属性和至少一个输出设备对象属性;
日志过滤模块,用于根据所述日志等级和所述目标配置数据对所述日志数据进行过滤处理,以得到可输出日志数据和对应所述可输出日志数据的目标输出设备对象属性,其中所述目标输出设备对象属性属于所述至少一个输出设备对象属性;
日志加工模块,用于根据所述日志类对象属性对所述可输出日志数据进行加工,以得到待输出日志数据;以及
日志输出模块,用于根据所述目标输出设备对象属性输出所述待输出日志数据;
其中,所述数据查找模块包括:
第一查找子模块,用于根据所述日志类对象名称查找所述日志类对象属性;
第二查找子模块,用于根据所述日志类对象名称查找所述至少一个数据路径对象属性;
第三查找子模块,用于根据所述至少一个数据路径对象属性中每一个所述数据路径对象属性中包含的目标输出设备对象名称查找所述至少一个输出设备对象属性中相对应的输出设备对象属性;
所述日志过滤模块包括:
第一过滤子模块,用于比较所述日志等级和所述日志类对象属性中包含的第一过滤门槛等级,以得到表征所述日志数据是否被过滤的第一比较结果;
第二过滤子模块,响应于所述第一比较结果表征所述日志数据未被过滤,比较所述日志等级和指定数据路径对象属性中包含的第二过滤门槛等级,以得到表征所述日志数据是否被过滤的第二比较结果,其中所述指定数据路径对象属性为所述至少一个数据路径对象属性中的任意一个数据路径对象属性;
第三过滤子模块,用于响应于所述第二比较结果表征所述日志数据未被过滤,判断对应所述指定数据路径对象属性的所述输出设备对象属性中包含的启用开关是否为开启状态,并响应于所述启用开关为开启状态,将所述日志数据确定为对应所述指定数据路径对象属性的所述输出设备对象属性的可输出日志数据。
5.如权利要求4所述的基于嵌入式设备的日志管理装置,其特征在于,所述日志加工模块包括:
第一加工子模块,用于根据所述日志类对象属性中包含的附加信息样式信息、所述日志类对象名称、所述日志等级,得到日志附加信息文本;
第二加工子模块,用于根据所述日志附加信息文本和所述可输出日志数据得到待输出日志文本;
第三加工子模块,用于根据所述日志类对象属性中包含的显示效果信息,增加ANSI转义序列至所述待输出日志文本,以得到所述待输出日志数据。
6.如权利要求4至5任意一项所述的基于嵌入式设备的日志管理装置,其特征在于,还包括:
配置管理模块,用于根据用户配置代码创建并配置至少一个日志类对象、至少一个数据路径对象和/或至少一个输出设备对象,其中所述至少一个日志类对象具有各自的日志类对象属性,所述至少一个数据路径对象具有各自的数据路径对象属性,所述至少一个输出设备对象具有各自的输出设备对象属性。
7.一种基于嵌入式设备的日志管理***,其特征在于,包括:处理器和存储器;其中,所述存储器存储由所述处理器执行的指令,且所述指令使得所述处理器执行操作以进行如权利要求1至3任意一项所述的基于嵌入式设备的日志管理方法。
CN202010092112.XA 2020-02-14 2020-02-14 基于嵌入式设备的日志管理方法、装置及*** Active CN113268462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010092112.XA CN113268462B (zh) 2020-02-14 2020-02-14 基于嵌入式设备的日志管理方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010092112.XA CN113268462B (zh) 2020-02-14 2020-02-14 基于嵌入式设备的日志管理方法、装置及***

Publications (2)

Publication Number Publication Date
CN113268462A CN113268462A (zh) 2021-08-17
CN113268462B true CN113268462B (zh) 2024-05-10

Family

ID=77227204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010092112.XA Active CN113268462B (zh) 2020-02-14 2020-02-14 基于嵌入式设备的日志管理方法、装置及***

Country Status (1)

Country Link
CN (1) CN113268462B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366394A (ja) * 2002-03-28 2002-12-20 Hitachi Ltd ログデータの収集管理方法
CN105260315A (zh) * 2015-11-13 2016-01-20 上海斐讯数据通信技术有限公司 一种在嵌入式***进程中调试日志的方法
CN107291615A (zh) * 2017-05-19 2017-10-24 北京北信源软件股份有限公司 一种web前端日志输出方法与装置
CN109284251A (zh) * 2018-08-14 2019-01-29 平安普惠企业管理有限公司 日志管理方法、装置、计算机设备以及存储介质
WO2019060326A1 (en) * 2017-09-20 2019-03-28 University Of Utah Research Foundation ANALYSIS OF SYSTEM EVENT LOGS DURING CONTINUOUS TRANSMISSION
CN110399107A (zh) * 2019-07-24 2019-11-01 深圳市盟天科技有限公司 日志打印方法、装置、存储介质及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430486B2 (en) * 2004-05-22 2008-09-30 Advantest America R&D Center, Inc. Datalog support in a modular test system
US20110231820A1 (en) * 2010-03-19 2011-09-22 Aricent Inc. Exclusive logging
US20190108112A1 (en) * 2017-10-05 2019-04-11 Hcl Technologies Limited System and method for generating a log analysis report from a set of data sources

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366394A (ja) * 2002-03-28 2002-12-20 Hitachi Ltd ログデータの収集管理方法
CN105260315A (zh) * 2015-11-13 2016-01-20 上海斐讯数据通信技术有限公司 一种在嵌入式***进程中调试日志的方法
CN107291615A (zh) * 2017-05-19 2017-10-24 北京北信源软件股份有限公司 一种web前端日志输出方法与装置
WO2019060326A1 (en) * 2017-09-20 2019-03-28 University Of Utah Research Foundation ANALYSIS OF SYSTEM EVENT LOGS DURING CONTINUOUS TRANSMISSION
CN109284251A (zh) * 2018-08-14 2019-01-29 平安普惠企业管理有限公司 日志管理方法、装置、计算机设备以及存储介质
CN110399107A (zh) * 2019-07-24 2019-11-01 深圳市盟天科技有限公司 日志打印方法、装置、存储介质及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SQLite数据库在雷达日志管理中的应用;林回祥;程小军;;雷达科学与技术(02);全文 *
基于Linux的防火墙日志数据库化;李旭;路娟;;科技信息(03);全文 *

Also Published As

Publication number Publication date
CN113268462A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
CN110928772B (zh) 一种测试方法及装置
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
US9804952B1 (en) Application debugging in a restricted container environment
US10354031B2 (en) Information processing by interpenetrating signal transmission channel in design for testability of chip
CN110650037B (zh) 异构网络设备配置方法及装置
CN113535225B (zh) 应用软件的环境配置文件处理方法、装置、设备和介质
CN109840074B (zh) 一种业务生成方法、装置及网络设备
CN111858301A (zh) 基于变更历史的组合服务测试用例集约简方法及装置
CN115599347A (zh) 一种自动化代码开发实现方法和***
CN109063040B (zh) 客户端程序数据采集方法及***
US20200304383A1 (en) Generation of templates for cloud computing platforms
CN113268462B (zh) 基于嵌入式设备的日志管理方法、装置及***
CN111723087A (zh) 数据血缘关系的挖掘方法、装置、存储介质和电子设备
CN111988169B (zh) 一种云平台异常磁盘清理修复的方法、***、设备及介质
CN111435327B (zh) 一种日志记录的处理方法、装置及***
CN116560626A (zh) 基于自定义规则的数据处理方法、***、设备和存储介质
KR100930962B1 (ko) 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법
CN115904852A (zh) 一种用于数据处理器的自动化测试方法、设备及介质
CN113031964B (zh) 一种大数据应用的管理方法、装置、设备及存储介质
CN112464596B (zh) 回归测试方法、***、设备及可读存储介质
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
CN114691882A (zh) 多源数据实时计算方法、装置、存储介质和设备
CN114510323A (zh) 在容器中运行虚机的网络优化实现方法
CN114143235A (zh) Nfv自动测试方法、装置、设备及存储介质
CN113821193A (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