linux c c 常用的日志库,mslog: 一款超轻量级的C日志库,无需依赖额外的库,测试或移植过的系统有Linux(ubuntu,centos),Windows以及部分嵌入式设备;...
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
字節(jié)和數組數據類型
字節(jié)性數據類型: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長度,并初始化環(huán)境。
logopt選項是由32位整形表示:
前4位表示日志級別,分別為嚴重錯誤,錯誤,警告,信息,調試,冗余,詳細;
第5位標識是否開啟標準終端輸入和輸出;
第6位標識日志是否添加行和API接口名信息;
第7位標識是否將日志打印到日志文件;
dir:日志保存目錄,最大支持256個字節(jié)長度,傳入ms_null則保存到/tmp目錄;
maxlen:文件保存的最大塊長度,若傳入0則使用默認值409600
ms_u32 mslog_api_getopt(ms_void);
獲取當前的日志選項值;
void mslog_api_unsetopt(void);
清除日志環(huán)境;
日志打印函數:日志標簽由模塊定義的宏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個字節(jié),不足16字節(jié)補0,日志級別為調試
ms_errbuf(description, buf, len)
將BUF中的數據以2進制方式顯示,每行顯示16個字節(jié),不足16字節(jié)補0,日志級別為錯誤
ms_bufascii(description, buf, len)
將BUF中的數據以ASCII方式顯示,每行顯示16個字節(jié),不足16字節(jié)補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以及部分嵌入式设备;...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab 除法取整
- 下一篇: 【转载】ASP.NET应用程序与页面生命