1. 程式人生 > >在C語言中使用syslog打印日誌到日誌文件

在C語言中使用syslog打印日誌到日誌文件

clas mda 數據 破壞 warning deb c語言 ges clu

參見 《unix 環境高級編程》第13 章 精靈進程

Syslog為每個事件賦予幾個不同的優先級:

LOG_EMERG——緊急情況 
LOG_ALERT——應該被立即改正的問題,如系統數據庫破壞
LOG_CRIT——重要情況,如硬盤錯誤
LOG_ERR——錯誤
LOG_WARNING——警告信息
LOG_NOTICE——不是錯誤情況,但是可能需要處理
LOG_INFO——情報信息
LOG_DEBUG——包含情報的信息,通常旨在調試一個程序時使用
#include<stdio.h>
#include<stdlib.h>
#include <syslog.h>

syslog(LOG_INFO, "hello %s","woring");
syslog(LOG_ERR, "hello %s","test");

範例:

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

void main(void)
{
    for(int i=0;i<3;i++){
    syslog(LOG_USER
|LOG_EMERG,"syslog programming test %d times/n", i); } }

? c git:(master) ? gcc logtest.c -std=c99
? c git:(master) ? ./a.out

檢驗:

tail -f /var/log/syslog

Mar 6 17:37:45 brian a.out: syslog programming test 0 times/n
Mar 6 17:37:45 brian a.out: syslog programming test 1 times/n
Mar 6 17:37:45 briana.out: syslog programming test 2 times/n

Ubuntu:
/ect/rsyslog.conf
tail -f /var/log/syslog

Other linux:
/etc/syslog.conf
/etc/syslog-ng/syslog-ng.conf
tail -f /var/log/messages

參考:
c語言庫函數syslog--將信息記錄至系統日誌文件
https://blog.csdn.net/jiangxinyu/article/details/1473356

在C語言中使用syslog打印日誌到日誌文件