您的位置:首页 > 其它

守护进程的日志实现

2009-12-10 13:53 330 查看
1. syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。

2. 守护进程日志的实现主要有以下三个函数:

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

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

void closelog(void);

openlog:用于打开系统日志连接,只有在打开连接后,才能使用syslog向日志文件中添加信息。

closelog:关闭打开的系统日志文件(在实际编程中,可选)

参数简介:

ident:指定信息来源

option:

option
说明
LOG_CONS如果信息发送给syslogd时发生错误,直接将信息输出到终端
LOG_NDELAY立即打开与系统日志的连接(通常,在产生第一条日志信息的情况下才会打开与日记系统的连接)
LOG_NOWAIT在记录日志信息时,不等待可能的子进程的创建
LOG_ODELAY类似于LOG_NDELAY,日记系统在调用syslog函数时才创建
LOG_PERROR将信息写入日志的同时,也发送到标准错误输出
LOG_PID每条日志信息包括进程号
facility:

facility说明
LOG_KERNkern
LOG_USERuser
LOG_MAINmain
LOG_DAEMONdaemon
LOG_AUTHauth
LOG_SYSLOGsyslog
LOG_LPRlpr
LOG_NEWSnews
LOG_UUCPuucp
LOG_CRONcron
LOG_AUTHPRIVauthpriv
LOG_FTPftp
LOG_LOCAL0 ~ LOG_LOCAL7local0 ~ local7
priority:
Prioritysyslog.conf中level的取值
LOG_EMERGemerg
LOG_ALERTalert
LOG_CRITcrit
LOG_ERRerr
LOG_WARNINGwarning
LOG_NOTICEnotice
LOG_INFOinfo
LOG_DEBUGdebug
3. 参考代码
#include <stdio.h>
#include <syslog.h>

int main(int argc, char *argv[])
{
openlog(argv[0], LOG_CONS | LOG_PID, LOG_USER);

int count = 0;
while(count < 5)
{
syslog(LOG_INFO, "%d, log info test...", count);
++count;
}
closelog();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: