openlog、syslog和closelog函数
2015-09-09 10:24
459 查看
openlog、syslog和closelog函数
分类: c/c+程序设计2013-03-3022:42 2440人阅读 评论(0) 收藏 举报
守护进程日志的实现
syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程日志主要涉及3个函数,分别是openlog、syslog和closelog函数。表8.4所示为这3个函数的具体信息。
表8.4 openlog、syslog和closelog函数
头文件 | <syslog.h> | ||
函数形式 | void openlog(const char *ident, int option, int facility); void syslog(int priority, const char *format, ...); void closelog(void); | ||
此ident 将被加至每则记录消息中。ident 一般是程序的名称(例如 ,cron ,ine 等)
openlog函数中的第1个参数为ident,该参数常用来表示信息的来源。ident指向的字符信息会被固定地添加在每行日志的前面。第2个参数option用于指定openlog函数和接下来调用的syslog函数的控制标志。option的取值情况如表8.5所示,可以单独取其中的某个值,也可以通过与运算来获得多种特性。第3个参数为facility,这个要与syslogd守护进程的配置文件对应,日志信息会写入syslog.conf文件指定的位置。
表8.5 openlong函数中的option取值表
参 数 | 说 明 |
LOG_CONS | 如果将信息发送给syslogd守护进程时发生错误,直接将相关信息输出到终端 |
LOG_NDELAY | 立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接) |
LOG_NOWAIT | 在记录日志信息时,不等待可能的子进程的创建 |
LOG_ODELAY | 类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建 |
参 数 | 说 明 |
LOG_PERROR | 在将信息写入日志的同时,将信息发送到标准错误输出(POSIX.1-2001不支持该参数) |
LOG_PID | 每条日志信息中都包括进程号 |
表8.6 openlog函数参数facility取值
facility参数 | syslog.conf中对应的facility取值 |
LOG_KERN | kern |
LOG_USER | user |
LOG_MAIL | mail |
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 |
表8.7 syslog函数参数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 |
参考代码如下:
点击(此处)折叠或打开
#include <syslog.h>
int main(int argc, char **argv)
{
syslog(LOG_ERR|LOG_USER,"test
- %m/n");
openlog("SyslogTest", LOG_CONS | LOG_PID, 0);
syslog(LOG_DEBUG,"This
is a syslog test message generated by program '%s'/n",argv[0]);
closelog();
return 0;
}
执行结果:#cat /var/log/syslog
转自:http://blog.chinaunix.net/uid-26583794-id-3166083.html
相关文章推荐
- 9月第1周全球域名商(国际域名)新增注册量TOP15
- hadoop 输出文件 key val 分隔符
- Windows安装openmeetings3.0.6
- AD-Powershell for Active Directory Administrators
- AD-Powershell for Active Directory Administrators
- 基于openwrt和s3c2440的无线ap实现
- 网站编程积累
- .公司域名注册总量TOP15:西部数码跌至第五 降幅最大
- linux du df命令清除不要的大文件
- ARM9的OpenWRT系统的移植以及 无线视觉操控系统的软件开发
- top里的load average怎么理解呢
- 查看linux操作系统位数命令
- WordPress 3.9 Released – Install Using LAMP or LEMP on RHEL, CentOS & Fedora
- Linux 大页面使用与实现简介
- nginx收到空包问题
- 实名网站认证申请条件
- 通过jconsole监控tomcat JVM 内存、线程、CPU
- linux文件权限问题
- freopen
- Tomcat favicon.ico 404的问题