一种CDLOG日志收集工具制造技术

技术编号:32886043 阅读:47 留言:0更新日期:2022-04-02 12:21
本发明专利技术属于软件开发技术领域,具体为一种CDLOG日志收集工具,包括配置模块、API接口模块以及自诊断模块,其中,配置模块包括对日志收集存储方式的设置;API接口模块包括供开发者调用的日志函数接口;自诊断模块包括对CDLOG软件本身的运行的日志收集,其结构合理,CDLOG的接口简约明了,方便被其它应用程序调用,能够很好地与其他代码兼容,大大提高开发者的编码效率。通过CDLOG可以有效地对日志信息进行收集分类,提高的软件整体的维护效率。提高的软件整体的维护效率。提高的软件整体的维护效率。

【技术实现步骤摘要】
一种CDLOG日志收集工具


[0001]本专利技术涉及软件开发
,具体为一种CDLOG日志收集工具。

技术介绍

[0002]在软件或者程序运行的过程中会产生大量的称为日志的事件记录,而这些日志既可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。于是,如何使这些日志成为有价值的东西,日志收集工具就显得尤为重要。在日常的编码过程中,使用C语言的程序员们常常会苦于没有一款合适的日志收集工具(就像JAVA里的log4j)。使用printf对于结构简单的代码尚可满足需求,然而对于大型的项目工程来说,printf是完全不足以支撑的。因为它没办法通过配置来改变日志的格式或者输出文件。syslog也不失为另一个选择,但它的缺点同样明显:速度慢,而且功能单调。
[0003]每个功能丰富的软件的背后都有大量复杂的代码在支撑着,功能越复杂,就意味着代码的维护工作也同样困难,开发者们往往都会在编码的过程中,在代码的关键位置上加上日志信息的输出,以此成千上万行的代码中来定位问题所在。由此,好用的日志收集工具将成为软件代码不可或缺的一部分,开发这样一款日志信息管理器就显得格外重要。
[0004]一般的状态信息输出方法,例如printf和syslog等,都各有缺点,无法满足需求。我司研发的CDLOG是一款纯C语言的日志收集工具,提供一套日志函数库。CDLOG的日志函数库以动态链接库的方式提供,不依赖其他库,调用简单,只需在主体的代码的编译过程中添加相应的编译选项即可。CDLOG功能丰富,提供日志格式定制、日志输出到文件、用户自定义日志等级等多项功能,同时还具备性能优越的日志收集速度。具有一定使用POSIX标准系统经验的C语言开发者即可达到CDLOG的使用门槛,因此CDLOG受众十分广泛,其功能也完全能够满足开发者们对于CDLOG日志收集工具的期待。

技术实现思路

[0005]本部分的目的在于概述本专利技术的实施方式的一些方面以及简要介绍一些较佳实施方式。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。
[0006]鉴于现有技术中存在的问题,提出了本专利技术。
[0007]因此,本专利技术的目的是提供一种CDLOG日志收集工具,能够实现公司内部开发人员之间对软件的了解和交流沟通,并指导开发人员对软件进行代码开发和维护。
[0008]为解决上述技术问题,根据本专利技术的一个方面,本专利技术提供了如下技术方案:
[0009]一种CDLOG日志收集工具,其包括配置模块、API接口模块以及自诊断模块,其中,配置模块包括对日志收集存储方式的设置;API接口模块包括供开发者调用的日志函数接口;自诊断模块包括对CDLOG软件本身的运行的日志收集。
[0010]作为本专利技术所述的一种CDLOG日志收集工具的一种优选方案,其中:所述配置模块
主要包括了读取配置、重载配置、规则分类和清理内存;在CDLOG中,有3个重要的概念:分类(Category)、规则(Rule)和格式(Format)
[0011]其中,
[0012]分类(Category)用于区分不同的输入。代码中的分类变量的名字是一个字符串,在一个程序里面可以通过获取不同的分类名用来输出不同分类的日志,用于不同的目的;
[0013]规则(Rule)是把分类、日志级别、输出文件、格式组合起来,决定一条代码中的日志是否输出,输出到哪里,以什么格式输出;
[0014]格式(Format)是用来描述输出日志的格式,比如是否带有时间戳、是否包含文件位置信息。
[0015]作为本专利技术所述的一种CDLOG日志收集工具的一种优选方案,其中:主要由cdlog_init()函数来实现,从给定路径的文件中,将配置信息读到内存里,如果不指定,则会读取默认环境变量ZLOG_CONF_PATH的值来作为配置文件名,若配置文件中的[global]参数“strict init”参数配置为true,那么cdlog_init()函数将会严格检查所有格式和规则,任何错误都会导致读取失败;若“strict init”参数配置为false,cdlog_init()函数则会忽略错误的格式和规则。这个参数默认为true;
[0016]重载配置:主要由cdlog_reload()函数来实现,从给定路径的文件中重新载入配置信息到内存里,如果不指定,则会重载上一次cdlog_init()或者cdlog_reload()使用的配置文件,该操作具有原子性;
[0017]规则分类:主要由cdlog_get_category()函数来实现,从配置文件中读取不同的分类名用来输出不同分类的日志,用于不同的目的。
[0018]清理内存:主要由cdlog_fini()函数来实现,清理所有cdlogAPI申请的内存空间。
[0019]作为本专利技术所述的一种CDLOG日志收集工具的一种优选方案,其中:所述API接口模块包括了各个日志输出函数,根据CDLOG默认的日志等级划分(DEBUG、INFO、NOTICE、WARN、ERROR、FATAL,优先级从左往右依次提高),与之对应的函数如下:
[0020]cdlog_debug():输出DEBUG级别的日志信息;
[0021]cdlog_info():输出INFO级别的日志信息;
[0022]cdlog_notice():输出NOTICE级别的日志信息;
[0023]cdlog_warn():输出WARN级别的日志信息;
[0024]cdlog_error():输出ERROR级别的日志信息;
[0025]cdlog_fatal():输出FATAL级别的日志信息。
[0026]作为本专利技术所述的一种CDLOG日志收集工具的一种优选方案,其中:所述自诊断模块通过环境变量CDLOG_PROFILE_DEBUG和CDLOG_PROFILE_ERROR的值来决定诊断日志将会被输出什么位置,通过排查诊断日志可以找出CDLOG的内部错误。
[0027]与现有技术相比,本专利技术的有益效果是:CDLOG的接口简约明了,方便被其它应用程序调用,能够很好地与其他代码兼容,大大提高开发者的编码效率。通过CDLOG可以有效地对日志信息进行收集分类,提高的软件整体的维护效率。
附图说明
[0028]为了更清楚地说明本专利技术实施方式的技术方案,下面将结合附图和详细实施方式
对本专利技术进行详细说明,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0029]图1为本专利技术CDLOG系统结构示意图;
[0030]图2为本专利技术CDLOG架构拓扑结构示意图;
[0031]图3为本专利技术日志配置文件处理流程图;
[0032]图4为本专利技术API接口调用流程图;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CDLOG日志收集工具,其特征在于:包括配置模块、API接口模块以及自诊断模块,其中,配置模块包括对日志收集存储方式的设置;API接口模块包括供开发者调用的日志函数接口;自诊断模块包括对CDLOG软件本身的运行的日志收集。2.根据权利要求1所述的一种CDLOG日志收集工具,其特征在于:所述配置模块主要包括了读取配置、重载配置、规则分类和清理内存;在CDLOG中,有3个重要的概念:分类(Category)、规则(Rule)和格式(Format)其中,分类(Category)用于区分不同的输入。代码中的分类变量的名字是一个字符串,在一个程序里面可以通过获取不同的分类名用来输出不同分类的日志,用于不同的目的;规则(Rule)是把分类、日志级别、输出文件、格式组合起来,决定一条代码中的日志是否输出,输出到哪里,以什么格式输出;格式(Format)是用来描述输出日志的格式,比如是否带有时间戳、是否包含文件位置信息。3.根据权利要求2所述的一种CDLOG日志收集工具,其特征在于:读取配置:主要由cdlog_init()函数来实现,从给定路径的文件中,将配置信息读到内存里,如果不指定,则会读取默认环境变量ZLOG_CONF_PATH的值来作为配置文件名,若配置文件中的[global]参数“strictinit”参数配置为true,那么cdlog_init()函数将会严格检查所有格式和规则,任何错误都会导致读取失败;若“strict init”参数配置为false,cdlog_init()函数则会忽略错误的格式和规则。这...

【专利技术属性】
技术研发人员:杨刚郑磊王金元
申请(专利权)人:无锡谷数科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1