linux系統之使用syslog來記錄調試信息

1、syslog的工作原理

(1)操作系統中有一個守護進程syslogd(開機時運行,關機時結束),這個守護進程syslogd負責進行日誌文件的寫入和維護。

(2)syslogd是獨立於我們任意一個進程而運行的。我們當前進程和syslogd進程本來是沒有任何關係的,但是我們當前進程可以通過調用openlog打開一個和syslogd相連接的通道,然後通過syslog向syslogd發消息,然後由syslogd來將其寫入到日誌文件系統中。

(3)syslogd其實就是一個日誌文件系統的服務器進程,提供日誌服務。任何需要寫日誌的進程都可以通過openlog/syslog/closelog這三個函數來利用syslogd提供的日誌服務。這就是操作系統的服務式的設計。

 

2、常用函數:openlog、syslog、closelog

 

3、編程實例

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <syslog.h>


int main(void)
{
	printf("my pid = %d.\n", getpid());
	
	openlog("a.out", LOG_PID | LOG_CONS, LOG_USER);
	
	syslog(LOG_INFO, "this is my log info.");
	
	closelog();
	
	return 0;
}

 

注:一般log信息都在操作系統的/var/log/messages這會文件中存儲着,但是ubuntu中是在/var/log/syslog文件中的。

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