簡單的案例用於封裝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