專案中,無論客戶端還是服務端,日誌都是必不可少的,一般的日誌格式具備下面幾個要素:
時間,日誌等級,原始碼檔案,原始碼行數,日誌字串格式化內容。
日誌事例**:
log_err("check file failed, task id = %d, error = %d", itaskid, ierrcode);
日誌內容:
[2017-10-28 19:40:01][error][uploadclient.cpp][380] check file failed, task id = 6, error = 23
日誌巨集定義:
字串格式化資料如何作為引數傳遞,研究了不少時間~ 為啥要將日誌函式定義為巨集呢,主要是因為 __file__ 和 __line__ 這兩個引數,只有通過巨集,才能正確記錄哪個檔案,哪一行的日誌。
windows
#define log_trace(x, ...) logtrace(__file__, __line__, x, ##__va_args__);
#define log_debug(x, ...) logdebug(__file__, __line__, x, ##__va_args__);
#define log_info(x, ...) loginfo(__file__, __line__, x, ##__va_args__);
#define log_important(x, ...) logimportant(__file__, __line__, x, ##__va_args__);
#define log_err(x, ...) logerror(__file__, __line__, x, ##__va_args__);
void logdata(const char* pfile, int iline, int itype, lpctstr lpinfo);
void logtrace(const char* pfile, int iline, lpctstr pformat, ...);
void logdebug(const char* pfile, int iline, lpctstr pformat, ...);
void loginfo(const char* pfile, int iline, lpctstr pformat, ...);
void logimportant(const char* pfile, int iline, lpctstr pformat, ...);
void logerror(const char* pfile, int iline, lpctstr pformat, ...);
linux log4cplus
#define log4_fatal(args...) log4cplus_fatal_fmt(getlogger(), ##args)
#define log4_error(args...) log4cplus_error_fmt(getlogger(), ##args)
#define log4_warn(args...) log4cplus_warn_fmt(getlogger(), ##args)
#define log4_info(args...) log4cplus_info_fmt(getlogger(), ##args)
#define log4_debug(args...) log4cplus_debug_fmt(getlogger(), ##args)
#define log4_trace(args...) log4cplus_trace_fmt(getlogger(), ##args)
通過巨集定義的日誌外掛程式 C語言
伺服器程式執行少不了日誌檔案的輸出,joyyzhang google了一下相關的外掛程式,發現實現的都太複雜,用起來也不方便,於是joyyzhang通過巨集定義實現了乙個輕量級的日誌外掛程式,只需引用其標頭檔案即可使用,還能自定義日誌的級別,用起來十分方便。標頭檔案 如下.include inclu...
C 巨集定義 巨集定義求面積
學過c語言的讀者,對巨集定義應該不陌生,同樣在c 中,也可以用巨集定義命令將乙個指定的識別符號來代表乙個字串,巨集定義的作用一般是用乙個短的名字代表乙個長的字串。一般形式為 define 識別符號 字串定義pi的符號常量 define pi 3.14在c 中還可以用 define命令定義帶引數的巨集...
C語言巨集定義和巨集定義函式
c語言巨集定義和巨集定義函式 巨集定義可以幫助我們防止出錯,提高 的可移植性和可讀性等。在軟體開發過程中,經常有一些常用或者通用的功能或者 段,這些功能既可以寫成函式,也可以封裝成為巨集定義。那麼究竟是用函式好,還是巨集定義好?這就要求我們對二者進行合理的取捨。我們來看乙個例子,比較兩個數或者表示式...