通常的办法是使用 syslog 服务,将出错信息输入到 “/var/log/message” 系统日志文件中去。

Syslog 是 linux 中的系统日志管理服务通过守护进程 syslog 来维护。

syslog 函数说明

Openlog 函数用于打开系统日志服务的一个连接;

Syslog 函数用于向日志文件中写入消息,在这里可以规定消息的优先级、消息的输出格式等;

Closelog 函数用于关闭系统日志服务的连接。

syslog 函数格式

( 1 ) openlog 函数

#include <syslog.h>

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

Ident : 要向每个消息加入的字符串,通常为程序的名称;

option 参数:

n LOG_CONS : 若日志消息不能通过发送至 syslogd ,则将该消息写至控制台;

n LOG_NDELAY : 立即打开 UNIX 域数据报套接口至 syslsgd 守护进程。通常,在记录第一条消息之前,该套接口不打开。

n LOG_PERROR :除将日志消息发送给 syslog 外,还将它写至标准出错( stderr )。

n LOG_PID :每条消息都包含进程 ID ,此选择项可供对每个请求都 fork 一个子进程的守护进程使用。

openlog 的 facility 参数

n LOG_AUTH 授权程序 : login.su,getty, ⋯

n LOG_CRONcron 和 at

n LOG_DAEMON 系统守护进程: ftpd,routed, ⋯

n LOG_KERN 内核产生的消息

n LOG_LOCAL0 ~ 7 保留由本地使用

n LOG_LPR 行打系统: lpd, lpc, ⋯

n LOG_MAIL 邮件系统

n LOG_NEWSU senet 网络新闻系统

n LOG_SYSLOG syslogd 守护进程本身

n LOG_USER 来自其他用户进程的消息

n LOG_UUCP UUCP 系统

syslog 函数

# include <syslog.h>

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

Priority 选项(消息优先级)

n LOG_EMERG 紧急 ( 系统不可使用 ) ( 最高优先级 )

n LOG_ALERT 必须立即修复的条件

n LOG_CRIT 临界条件 ( 例如,硬设备出错 )

n LOG_ERR 出错条件

n LOG_WARNING 警告条件

n LOG_NOTICE 正常,但重要的条件

n LOG_INFO 信息性消息

n LOG_DEBUG 调试排错消息 ( 最低优先级 )

closelog 函数

#include <syslog.h>

void closelog(void);

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zccst/archive/2009/11/19/4836817.aspx


Logo

更多推荐