本发明专利技术提供了一种多用途微型日志系统及基于其的管理方法。该多用途微型日志系统主要包括接口层、内核层和后端层。接口层给用户提供支持不同系统类型的API接口,并接收用户输入的日志信息。内核层接收接口层传递过来的日志信息,并按照预设配置要求对日志信息进行处理,生成日志帧。后端层接收内核层传递过来的日志帧,并将日志帧输出给已注册的不同类型的日志后端设备上。采用三层架构设计,架构清晰简单,便于移植;提供给用户的接口更少,集成速度更快,功能更加简单,并且适配多种系统;由于采用简单的三层架构设计,具有微型(最低ROM<1K,RAM<0.2K的资源占用)、小巧、功能非常全面、支持多操作系统、高性能C/C++日志库的特点。高性能C/C++日志库的特点。高性能C/C++日志库的特点。
【技术实现步骤摘要】
一种多用途微型日志系统及基于其的管理方法
[0001]本专利技术涉及日志
,尤其涉及一种多用途微型日志系统及基于其的管理方法。
技术介绍
[0002]日志作为记录软件运行的状态、过程等信息,输出到不同的介质中(例如:文件、数据库、控制台、显示屏、串口终端等),并进行显示和保存。其作用为软件调试、维护过程中的问题追溯、性能分析、系统监控、故障预警等功能,提供参考依据。而日志有规律输出,需要通过一套日志系统管理。可以说,日志系统的使用,几乎占用软件生命周期至少80%的时间。市面上成熟软件中都会集成日志系统,方便软件调试、维护。
[0003]目前的日志系统,从应用角度可以分为嵌入式日志系统和PC(Personal Computer,计算机)端日志系统两大类。其中的嵌入式日志系统是指在资源受限的微控制器(MCU)加入的日志系统。而PC端日志系统是指运行Linux、Windows、Macos系统的平台中的日志系统。这两大类所用的日志系统有JDK Log、Log4c、Log4cpp、Log4j、Google Glog、Syslog,这些日志系统应用在各种软件中。这些日志系统虽然功能强大,但接口不统一,不能在嵌入式日志系统和PC端日志系统两大类方面通用,即在不同处理器、不同的系统上往往不能运行不同的日志系统,从而给开发和维护带来学习、移植成本、管理成本。
技术实现思路
[0004]本专利技术提供了一种多用途微型日志系统及基于其的管理方法,架构清晰简单,便于移植,具有微型、小巧、功能非常全面、支持多操作系统、高性能C/C++日志库的特点。
[0005]第一方面,本专利技术提供了一种多用途微型日志系统,该多用途微型日志系统主要包括接口层、内核层和后端层。其中,接口层用于与应用层连接,以给用户提供支持不同系统类型的API接口(ApplicationProgrammingInterface,应用程序编程接口),并接收用户输入的日志信息。内核层与接口层连接,以接收接口层传递过来的日志信息,并按照预设配置要求对日志信息进行处理,生成日志帧。后端层与内核层连接,以接收内核层传递过来的日志帧,并将日志帧输出给已注册的不同类型的日志后端设备上。
[0006]在上述的方案中,采用接口层、内核层和后端层组成的三层架构设计,以流水线的处理方式处理日志信息,架构清晰简单,便于移植;使接口层的API接口支持不同系统类型,后端层能够将日志帧输出给已注册的不同类型的日志后端设备上,提供给用户的接口更少,集成速度更快,功能更加简单,并且适配多种系统;由于采用简单的三层架构设计,具有微型(最低ROM<1K,RAM<0.2K的资源占用)、小巧、功能非常全面、支持多操作系统、高性能C/C++日志库的特点,从而非常适合对资源敏感的软件项目,该软件项目诸如但不限于IoT(Internet of Things,物联网)产品、可穿戴设备、智能家居等。
[0007]在一个具体的实施方式中,API接口为LOG_X(
…
)API接口;其中,LOG_X(
…
)API接口中的“X”为:表示不同级别日志的英文单词中的第一个字母大写;LOG_X(
…
)API接口中的
“…”
为日志内容。使接口层的API接口能够支持不同系统类型,从而能够给用户提供更少的接口。
[0008]在一个具体的实施方式中,内核层包含有:与接口层连接的格式化模块。格式化模块用于将接口层传递过来的日志信息处理为至少一帧设定格式日志。其中,每帧设定格式日志的总长度为n个字节。每帧设定格式日志依次包含有:级别字段、时间戳字段、标签字段和日志内容字段;其中,表示当前日志信息的级别日志的英文单词中的第一个字母大写写入级别字段;表示当前日志信息的时间戳写入时间戳字段;表示当前日志信息的来源模块的标签写入标签字段;当前日志信息的日志内容写入日志内容字段。通过在内核层不使用压缩模块,而是从源头设计简洁日志格式,集成格式化模块,使每个日志帧的长度设计成诸如128字节等,从日志字节数、日志帧数两个维度降低数据量,同时不缺失功能;使该日志系统支持设计微型、轻量级日记记录格式,且备份操作由文件系统自行完成,无需进行备份操作,减少接口数量及日志系统复杂度。
[0009]在一个具体的实施方式中,内核层还包含有与格式化模块连接的颜色字体处理模块。颜色字体处理模块用于按照预设规则,对每帧设定格式日志进行上色和字体风格处理,输出带颜色和字体风格的日志帧。目前的日志系统虽然功能强大,突出输出安全性和稳定性,但输出的日志没有颜色区分,字体没有风格,导致无法快速关注的重点信息。本申请通过在内核层还集成有颜色字体处理模块,采用一定的预设规则处理每个数据帧,将原本无色彩、无字体风格的日志添加色彩显示,大大提高日志可读性;在几十万行日志一眼找出想要的信息,通过对特定日志设置字体颜色及风格,快速定位,提高阅读效率;既能够明显减少日志大小,又同样到达彩色字体的日志,同时这种方式具有适用性更强的特点。相比log4c、zlog等C/C++日志库,通过增加上色处理、字体风格处理,即可输出缤纷多彩的日志,在不改变原有日志系统处理逻辑,只在日志最后输出时做处理,非常方便完成自定义颜色、字体风格的日志显示。
[0010]在一个具体的实施方式中,颜色字体处理模块按照预设规则,通过在每帧设定格式日志的头尾位置分别添加CSI(Control Sequence Introducer/Initiator,控制序列引导器)格式头和CSI格式尾,将每帧设定格式日志处理为带颜色和字体风格的日志帧。便于对每个数据帧进行上色处理和字体风格处理。
[0011]在一个具体的实施方式中,内核层还包含有与颜色字体处理模块连接的过滤器。过滤器包括:与颜色字体处理模块连接的级别过滤单元、标签过滤单元和关键词过滤单元;其中,级别过滤单元用于将不小于预设过滤级别的日志帧输出;标签过滤单元用于将包含有预设过滤标签的日志帧输出;关键词过滤单元用于将包含有预设过滤关键词的日志帧输出。通过在内核层还集成有过滤其模块,无需进行压缩,从源头设计简洁日志格式及过滤器,从日志字节数、日志条数两个维度降低数据量,同时不缺失功能。
[0012]在一个具体的实施方式中,内核层还包含有:均连接在过滤器及后端层之间的同步输出模块、异步输出模块及中断输出模块;且同步输出模块、异步输出模块和中断输出模块之间并联设置。其中,同步输出模块用于接收到每个日志帧之后,直接将该日志帧输出给后端日志设备;异步输出模块用于将接收的每个日志帧均缓存到缓存区,由日志输出线程取出缓存的所有日志帧后,输出给后端日志设备。通过在内核层中同时集成同步输出模块、异步输出模块和中断输出模块,且三个模块并联。系统异常中断时,日志系统采用异步和同
步模式特殊保护处理,保证日志安全输出。且在多线程多任务情况下,可以通过异步输出模块,先将日志缓存到缓存区,开启专门负责日志收集的线程取出日志,保证日志安全输出。
[0013]本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种多用途微型日志系统,其特征在于,包括:接口层,用于与应用层连接,以给用户提供支持不同系统类型的API接口,并接收用户输入的日志信息;内核层,与所述接口层连接,以接收所述接口层传递过来的所述日志信息,并按照预设配置要求对所述日志信息进行处理,生成日志帧;后端层,与所述内核层连接,以接收所述内核层传递过来的所述日志帧,并将所述日志帧输出给已注册的不同类型的日志后端设备上。2.如权利要求1所述的多用途微型日志系统,其特征在于,所述API接口为LOG_X(
…
)API接口;其中,所述LOG_X(
…
)API接口中的“X”为:表示不同级别日志的英文单词中的第一个字母大写;所述LOG_X(
…
)API接口中的
“…”
为日志内容。3.如权利要求2所述的多用途微型日志系统,其特征在于,所述内核层包含有:与所述接口层连接的格式化模块;所述格式化模块用于将所述接口层传递过来的日志信息处理为至少一帧设定格式日志;其中,每帧设定格式日志的总长度为n个字节;每帧设定格式日志依次包含有:级别字段、时间戳字段、标签字段和日志内容字段;其中,表示当前日志信息的级别日志的英文单词中的第一个字母大写写入所述级别字段;表示当前日志信息的时间戳写入所述时间戳字段;表示当前日志信息的来源模块的标签写入所述标签字段;当前日志信息的日志内容写入所述日志内容字段。4.如权利要求3所述的多用途微型日志系统,其特征在于,所述内核层还包含有与所述格式化模块连接的颜色字体处理模块;所述颜色字体处理模块用于按照预设规则,对每帧设定格式日志进行上色和字体风格处理,输出带颜色和字体风格的日志帧。5.如权利要求4所述的多用途微型日志系统,其特征在于,所述颜色字体处理模块按照所述预设规则,通过在每帧设定格...
【专利技术属性】
技术研发人员:于文才,陈超,陈志列,
申请(专利权)人:深圳市前海研祥亚太电子装备技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。