欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

linux c c 常用的日志库,mslog: 一款超轻量级的C日志库,无需依赖额外的库,测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备;...

发布时间:2023/12/10 64 豆豆

mslog

1.综述

​ 一款超轻量级的C日志库,无需依赖额外的库,库的设计目标为"简洁,可移植性强"。测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备。

2.如何使用

参考mslog_api_sample程序;

关于编译与安装,可参见make help;

3.功能概要

C语言基本数据类型;

日志级别一共有7个级别:

fatal(严重错误),error(错误),waring(警告),info(信息),debug(调试),verbose(冗余),more(详细);

每个级别分别实现不同颜色的显示,依次为:

brightblue,brightred,brightyellow,brightcyan,none,green,black

日志库支持标准输出;

日志库支持输出函数行和函数名;

日志库支持输出日志信息到日志文件,且保存目录可自定义;

日志库支持2种输出时间:<1>%Y-%M_%D %H:%M:%S;<2>微秒时间;

日志库支持多线程安全输出;

支持x8664,aarch64和armv7l架构;

4.数据类型

基本数据类型

//base data type

有符号数据类型:ms_s64 ms_s32 ms_s16 ms_s08 ms_float ms_double

无符号数据类型:ms_u64 ms_u32 ms_u16 ms_u08 ms_lu64

有符号指针数据类型: ms_ps64 ms_ps32 ms_ps16 ms_ps08

无符号指针数据类型: ms_pu64 ms_pu32 ms_pu16 ms_pu08

空数据类型: ms_void ms_pvoid

字节和数组数据类型

字节性数据类型:ms_byte ms_pbyte

数组性数据类型:ms_array ms_parray

布尔性数据类型

布尔性数据类型:ms_bool ms_pbool

条件为真:ms_true

条件为假:ms_false

字符串性数据类型

字符串数据类型:ms_string ms_pstring

固定字符串数据类型:ms_cstring ms_pcstring

函数传入参数或数据结构成员类型数据类型

ms_in 参数作为传入值,由函数外部传入供函数内部使用;

ms_out 参数作为获取值,由函数内部传入供函数外部使用;

ms_io 参数是复合类型,部分作为传入值,部分作为获取值;

ms_inner数据结构内部使用,不与外部进行值的交换;

数据最大值

ms_f3232位数据无效值

ms_f1616位数据无效值

ms_f0808位数据无效值

ms_sf(ms_fnum)有符号数据最大值,联合 ms_f*型使用;

空指针

ms_null

5.接口说明

基本函数名

mslog_innerapi_*:

库内部使用,将不详解;

ms_string mslog_api_version(ms_void);

获取库支持的功能模块

ms_string mslog_api_version(ms_void);

获取库版本号

ms_void mslog_api_new(ms_void)

重新打开日志文件。由于日志文件名跟时间相关,因此会产生一个新的日志文件;

ms_void mslog_api_setopt(ms_u32 ms_in logopt,ms_string ms_in dir,ms_u32 maxlen);

设置日志选项、日志保存目录和最大BUF长度,并初始化环境。

logopt选项是由32位整形表示:

前4位表示日志级别,分别为严重错误,错误,警告,信息,调试,冗余,详细;

第5位标识是否开启标准终端输入和输出;

第6位标识日志是否添加行和API接口名信息;

第7位标识是否将日志打印到日志文件;

dir:日志保存目录,最大支持256个字节长度,传入ms_null则保存到/tmp目录;

maxlen:文件保存的最大块长度,若传入0则使用默认值409600

ms_u32 mslog_api_getopt(ms_void);

获取当前的日志选项值;

void mslog_api_unsetopt(void);

清除日志环境;

日志打印函数:日志标签由模块定义的宏FLAG统一提供,基本打印

ms_fatal(fmt, arg...)

ms_error(fmt, arg...)

ms_waring(fmt, arg...)

ms_info(fmt, arg...)

ms_debug(fmt, arg...)

ms_verbose(fmt, arg...)

ms_more(fmt, arg...)

日志打印函数:日志标签由模块定义的宏FLAG统一提供,带返回值

ms_warnoret(frm,arg...)

ms_errret(ret,frm,arg...)

ms_errnoret(frm,arg...)

日志打回函数:日志标签由模块定义的宏FLAG统一提供,带跳转功能

ms_debuggoto

ms_infogoto(gval,frm,arg...)

ms_errgoto(gval,frm,arg...)

日志打回函数:日志标签由模块定义的宏FLAG统一提供,带程序退出功能

ms_errexit(ret,frm,arg...)

日志打回函数:日志标签由模块定义的宏FLAG统一提供,调试用-函数进入、退出和行打印

ms_funcenter

ms_funcleave

ms_funcline

日志打回函数:日志标签由模块定义的宏FLAG统一提供,功能不支持

ms_funcnosupport(arg)

功能不支持日志,功能名由arg传入

ms_funcnosupports

功能不支持日志,功能名是打印所在的函数

日志打回函数:日志标签由模块定义的宏FLAG统一提供,功能未授权

ms_funcunauthent(arg)

功能未授权日志,功能名由arg传入

ms_funcunauthents

功能未授权日志,功能名是打印所在的函数

日志打回函数:日志标签由模块定义的宏FLAG统一提供,功能需要修复

ms_fix(frm,arg...)

日志打回函数:日志标签由模块定义的宏FLAG统一提供,功能函数已被抛弃建议用新功能函数

ms_deprecated(oldfunc_name,newfunc_name)

日志打回函数:日志标签由模块定义的宏FLAG统一提供

ms_num2str(num)

将64位num转换为字符串返回

ms_bitbyte64(num_h,num_l)

ms_bitbyte32(num_h,num_l)

ms_bitbyte64_unit(num_h,num_l,unit)

#define ms_bitbyte32_unit(num_h,num_l,unit)

日志打回函数:日志标签由模块定义的宏FLAG统一提供,BUF打印

ms_buf(description, buf, len)

将BUF中的数据以2进制方式显示,每行显示16个字节,不足16字节补0,日志级别为调试

ms_errbuf(description, buf, len)

将BUF中的数据以2进制方式显示,每行显示16个字节,不足16字节补0,日志级别为错误

ms_bufascii(description, buf, len)

将BUF中的数据以ASCII方式显示,每行显示16个字节,不足16字节补0,日志级别为调试

日志打回函数:日志标签由模块定义的宏FLAG统一提供,带开关功能

ms_enerr(enable,fmt, arg...)

ms_endbg(enable,fmt, arg...)

ms_eninfo(enable,fmt, arg...)

ms_enverbose(enable,fmt, arg...)

ms_enhlight(enable,fmt, arg...)

ms_enbuf(enable,description, buf,len)

日志打回函数:日志标签由模块定义的宏FLAG统一提供,参数检测

ms_bufchecknoret(dbuf)

ms_bufcheck(dbuf)

ms_bufcheck_des(buf,fmt,arg...)

ms_bufcheckret(ret,dbuf)

ms_bufcheckret_des(ret,buf,fmt,arg...)

ms_bufcheckgoto(gval,dbuf)

ms_bufcheckgoto_des(gval,buf,fmt,arg...)

ms_pamnocheck(dbuf)

ms_pamcheck(buf,strname)

ms_pamcheckret(ret,buf,strname)

ms_pamcheckgoto(gval,buf,strname)

ms_pamnocheck(dbuf)

日志功能选项

mslog_enable_stdprint

mslog_enable_linefunc

mslog_enable_filelog

mslog_enable_timeus

6.关于

版本:v2.0.0

作者:smartavs

总结

以上是生活随笔为你收集整理的linux c c 常用的日志库,mslog: 一款超轻量级的C日志库,无需依赖额外的库,测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备;...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。