openlog

openlog是用於打開系統記錄的檔案。

用途

用於打開系統記錄。

函式頭檔案

#include<syslog.h>

函式原型

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

描述

openlog()打開一個程式的系統記錄器的連線。本函式呼叫 UNIX 系統的 openlog() 函式,因此在 Windows 系列的作業系統中,本函式沒有完全的實作。

1.idents指向的字元串可以是想要打出的任意字元,它所表示的字元串將固定地加在每行日誌的前面以標識這個日誌,該標誌通常設定為程式的名稱。

2.option參數所指定的標誌用來控制openlog()操作和syslog()的後續調用。他的值為具體是下列值取或運算的結果

LOG_CONS

直接寫入系統控制台,如果有一個錯誤,同時傳送到系統日誌記錄。

LOG_NDELAY

立即打開連線(通常,打開連線時記錄的第一條訊息)。

LOG_NOWAIT

不要等待子進程,因為其有可能在記錄訊息的時候就被創建了(GNU C庫不創建子進程,所以該選項在Linux上沒有影響。)

LOG_ODELAY

延遲連線的打開直到syslog函式調用。(這是默認情況下,需要沒被指定的情況下。)

LOG_PERROR

(不在SUSv3情況下)同時輸出到stderr(標準錯誤檔案)。

LOG_PID

包括每個訊息的PID。

3.facility參數是用來指定記錄訊息程式的類型。它讓指定的配置檔案,將以不同的方式來處理來自不同方式的訊息。它的值可能為 LOG_KERN、LOG_USER、LOG_MAIL、LOG_DAEMON、LOG_AUTH、LOG_SYSLOG、LOG_LPR、LOG_NEWS、LOG_UUCP、LOG_CRON 或 LOG_AUTHPRIV

各個值的具體意義我們可以參照man openlog 手冊。

LOG_AUTH

security/authorization messages (DEPRECATED Use LOG_AUTHPRIV

instead)

LOG_AUTHPRIV

security/authorization messages (private)

LOG_CRON

clock daemon (cron and at)

LOG_DAEMON

system daemons without separate facility value

LOG_FTP

ftp daemon

LOG_KERN

kernel messages

LOG_LOCAL0 through LOG_LOCAL7

reserved for local use

LOG_LPR

line printer subsystem

LOG_MAIL

mail subsystem

LOG_NEWS

USENET news subsystem

LOG_SYSLOG

messages generated internally by syslogd

LOG_USER (default)

generic user-level messages

LOG_UUCP

UUCP subsystem

示例代碼

#include <syslog.h>

int main(int argc, char **argv)

{

openlog("Test", LOG_CONS | LOG_PID, LOG_USER );

syslog(LOG_INFO,"This is a massage just for test");

closelog();

return 0;

}

運行後,"This is a massage just for test"字元串一般被寫入到/var/adm或/var/log目錄下的信息檔案中(messages.*),當然這得看syslogd的配置

相關詞條

相關搜尋

熱門詞條

聯絡我們