學習筆記——C語言打印日誌封裝

簡單的案例用於封裝syslog,便於邏輯處理中直接使用

案例代碼:

#include <stdio.h>
#include <syslog.h>

#define LOG(type, fmt, args...) syslog(type,"[%s:%s(%d)]:" fmt "\n", __FILE__,__FUNCTION__, __LINE__, ##args)

int main(int argc,char **argv){

    char info[20] = "message need printf";

    LOG(LOG_INFO,"info[%s]", info);
    /*等價於 syslog(LOG_INFO,"[%s:%s(%d)]:" "info[%s]" "\n", __FILE__, __FUNCTION__, __LINE__, j) */
    return 0;
}

編譯,測試:

gcc test2.c -o test2
./test2

如果沒有自定義syslog輸出日誌位置,則在/var/log/messages會有如下打印

Jun  8 18:59:45 localhost test2: [test2.c:main(11)]:info[message need printf]

至於日誌輸出的位置可以參考syslog相關配置文件syslog.conf

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章