Linux下日誌主要在/var/log下,好比:message、warn、localmessages等,在suse11下,由進程/sbin/syslog-ng負責日誌打印
配置文件:
/etc/syslog-ng/syslog-ng.conf
/etc/sysconfig/syslog html
消息類型 |
消息來源 |
kern |
內核 |
User |
用戶程序 |
Damon |
系統守護進程 |
Mail |
電子郵件系統 |
Auth |
與安全權限相關的命令 |
Lpr |
打印機 |
News |
新聞組信息 |
Uucp |
Uucp程序 |
Cron |
記錄當前登陸的每一個用戶信息 |
wtmp |
一個用戶每次登陸進入和退出時間的永久記錄 |
Authpriv |
受權信息 |
優先級 |
描述 |
emerg |
最高的緊急程序狀態 |
alert |
緊急狀態 |
Cirt |
重要信息 |
warning |
警告 |
err |
臨界狀態 |
notice |
出現不尋常的事情 |
info |
通常性信息 |
Debug |
調試級信息 |
None |
不記錄任何日誌信息 |
三、函數接口
在Linux中,提供了四個有關syslog日誌系統的系統調用,供用戶使用: 數據庫
(2)syslog函數
syslog函數的聲明以下:
void syslog(int priority, const char * message, ...);
第一個參數是消息的緊急級別priority,第二個參數是消息及其格式,以後是格式對應的參數,如同C語言裏面printf輸出函數同樣使用,具體的格式這裏就再也不詳述。
第一個參數priority,它是由severity level和facility組成的。Facility已經在上面介紹了,下面介紹一下severity level,也就是消息的重要級別,它主要包括: 安全
在實際使用中,若是咱們的程序要使用系統日誌功能,只須要在程序啓動時使用openlog函數來鏈接syslogd程序,後面隨時用syslog函數寫日誌就好了。 ide
(3)closelog函數
其聲明以下:
void closelog( void );
值得注意的是,雖然該函數的使用和調用狀況很是簡單,可是是必不可少的,由於在Linux系統中,打開的日誌也是資源,若是隻使用openlog函數打開 日 志,而忘記使用closelog關閉日誌的話,當打開的日誌數量累積到必定程度,便會形成內存不足,從而引發系統問題。 函數
1)用syslog打印 spa
#include <syslog.h> #include <stdio.h> #include <stdarg.h> int main(void) { int log_test; /*打開日誌*/ openlog("main", LOG_PID|LOG_CONS, LOG_USER); /*寫日誌*/ syslog(LOG_INFO, "PID information, pid=%d", getpid()); /*關閉日誌*/ closelog(); return 1; }
2)用vsyslog打印 調試
#include <syslog.h> #include <stdio.h> #include <stdarg.h> #include <stdlib.h> void p_syslog(char *format, ...) { va_list ap; va_start(ap, format); vsyslog(LOG_INFO, format, ap); va_end(ap); } int main(void) { openlog("main", LOG_PID, 0); int a = 10; p_syslog("test is %d\n",a); closelog(); return 1; }程序運行的結果寫入日誌:/var/log/message
【End】 日誌
本文部分概念描述性內容摘自:
http://weisjohn.blog.163.com/blog/static/310152562012326113450226
http://hi.baidu.com/ugo5/blog/item/cb90ca0b224ce82de8248831.html code