7.07.2013

Linux的syslog()函式

最近在看程式碼的時後,注意到一個function─syslog()!! 一直以為這是程式設計師自己定義的;到最後才知道是C99內建的系統函式。

既然知道了,就趕緊記下來這個函式要怎麼用!!

功能說明:將訊息記錄至系統記錄檔。

標頭檔:#include <syslog.h>

函式宣告:void syslog(int priority, char *format, ....);

函式說明:

syslog()類似printf()般,只是將字串格式和訊息字串輸出至系統記錄檔中。

char *format指的是所要發送的訊息字串;而int priority則是指所要發送的訊息等級,有以下種:

LOG_EMERG:核心不穩或其它緊急的訊息。

LOG_ALERT:需立即處理的錯誤訊息。

LOG_CRIT:嚴重的錯誤訊息。

LOG_ERR:一般的錯誤訊息。

LOG_WARNING:警告訊息。

LOG_NOTICE:提醒留意的訊息。

LOG_INFO:資訊相關的訊息。

LOG_DEBUG:除錯相關的訊息。

回傳值:無。

範例:
#include <syslog.h>

int main(void) {

    syslog(LOG_EMERG, "This is LOG_EMERG!! \n");
    syslog(LOG_ALERT, "This is LOG_ALERT!! \n");
    syslog(LOG_CRIT, "This is LOG_CRIT!! \n");
    syslog(LOG_ERR, "This is LOG_ERR!! \n");
    syslog(LOG_WARNING, "This is LOG_WARNING!! \n");
    syslog(LOG_NOTICE, "This is LOG_NOTICE!! \n");
    syslog(LOG_INFO, "This is LOG_INFO!! \n");
    syslog(LOG_DEBUG, "This is LOG_DEBUG!! \n");

    return 0;
}
執行結果:


由結果可以得知:LOG_EMERG除了會記錄在記錄檔之外,還會即時顯示出來。記錄檔的位址在:/ var / log / messages

沒有留言:

張貼留言