守护进程的日志实现

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_KERN kern
LOG_USER user
LOG_MAIN main
LOG_DAEMON daemon
LOG_AUTH auth
LOG_SYSLOG syslog
LOG_LPR lpr
LOG_NEWS news
LOG_UUCP uucp
LOG_CRON cron
LOG_AUTHPRIV authpriv
LOG_FTP ftp
LOG_LOCAL0 ~ LOG_LOCAL7 local0 ~ local7

priority:

Priority syslog.conf中level的取值
LOG_EMERG emerg
LOG_ALERT alert
LOG_CRIT crit
LOG_ERR err
LOG_WARNING warning
LOG_NOTICE notice
LOG_INFO info
LOG_DEBUG debug

 

3. 参考代码

#include #include 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; }

你可能感兴趣的:(LINUX)