68 程序之使用syslog來記錄除錯資訊

2021-08-17 23:03:58 字數 1420 閱讀 4244

openlog為當前的應用程式開啟乙個log檔案

syslog用來記錄一條資訊

closelog用來關閉本程式的log檔案

可以使用這三個函式,為系統檔案寫一條條的日誌,用日誌來做記錄

日誌資訊就是乙個檔案,每發生一件事,就給檔案寫一條日誌資訊,之後檢視這個檔案,就知道發生了什麼事情

各種引數

void openlog(const char *ident, int option, int facility);

void syslog(int priority, const char *format, ...);

void closelog(void);

ident當前應用程式的名字,因為我們很多程式都會向日誌檔案寫資訊,

日誌資訊是共用的,log要知道這一條是a寫的還是b寫的

option facility都是一些巨集定義

option:

log_cons:

pid:每一條資訊裡面加上pid,知道是哪個程序發的

因為父子程序的程序名字(ident)是一樣的,必須要通過pid來區別

facility

跟什麼相關的資訊,預設的log_user,絕大多數用的這個,

日誌資訊的重要程度,共有8個緊張程度

一般log資訊在/var/log messages

ubuntu中 var/log/syslog檔案中的

其實系統中一直有乙個守護程序syslogd

我們呼叫syslog函式,是給這個程序發訊息,這個服務程序將訊息儲存在/ var/log/syslog檔案中裡面

用 cat /var/log/syslog 開啟

總結,syslogd日誌檔案系統的伺服器程序,提供日誌服務,任何程序通過這三個函式跟syslogd通訊,

這就是os提供的服務式的設計,ftp也是,

#include #include #include #include int main(void)

加入準確時間資訊的syslog

#include #include #include #include #include int main(void);	

timenow = time(null);

str = ctime(&timenow);

//printf("it's %s ", str);

printf("pid = %d.\n", getpid());

openlog(null, log_pid, log_user);

syslog(log_debug, str, 1);

syslog(log_debug, "this is lt's log.\n");

closelog();

return 0;

}

程序之wait waitpid使用

上個部落格講了如何使用fork簡單的建立乙個新的程序,本篇文章將講下如何避免殭屍程序的產生,殭屍程序的產生就是因為子程序退出時沒有父程序替它 收屍 即沒有獲取子程序的狀態資訊,一般我們可以使用wait或者waitpid函式來進行處理 下面的 示例演示了子程序如何成為殭屍程序的過程 include i...

使用命令來結束程序

taskkill 說明 這個命令列工具可用來結束至少乙個程序。可以根據程序 id 或影象名來結束程序。可通過taskkill 在獲得詳細幫助。支援系統winxp以上。例如 taskkill s system f im notepad.exe t taskkill pid 1230 pid 1241 ...

使用php來做守護程序

起源 linux unix下守護程序 daemon 大家都知道,比如我們常用的httpd mysqld等等,就是常駐記憶體執行的程式,類似於windows下的服務。一般守護程序都是使用c c 來寫,就是通過fork生成子程序,當前臺shell下的父程序被殺掉,子程序就轉到後台執行,為了不在終端產生輸...