进程学习10--syslog记录调试信息
2017-05-31 20:33
218 查看
概述
syslog的守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程日志主要涉及3个函数,分别是openlog、syslog和closelog函数。一般log信息都是在 /var/log/messages文件中存储,ubuntu中是在 /var/log/syslog文件中
正文
函数openlog
函数原型
void openlog(const char *ident, int option, int facility);参数
调用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。参数ident常用来表示信息来源,可以自定义设置
参数option用于指定openlog函数和接下来调用的syslog函数的控制标志。
LOG_CONS 如果将信息发送给syslogd守护进程时发生错误,直接将相关信息输出到终端
LOG_NDELAY 立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接)
LOG_NOWAIT 在记录日志信息时,不等待可能的子进程的创建
LOG_ODELAY 类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建
LOG_PERROR 在将信息写入日志的同时,将信息发送到标准错误输出(POSIX.1-2001不支持该参数)
LOG_PID 每条日志信息中都包括进程号
参数facility,这个要与syslogd守护进程的配置文件对应,日志信息会写入syslog.conf文件指定的位置。
返回值
无函数syslog
函数原型
void syslog(int priority, const char *format, …);参数
参数priority表示消息的级别参数format为消息的格式,参考printf函数
返回值
无函数closelog
函数原型
void closelog(void);参数
调用closelog是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。参数:无
返回值
无测试代码
int main(void) { printf("getpid = %d\r\n",getpid()); openlog("a.out",LOG_PID|LOG_CONS,LOG_USER); syslog(LOG_INFO,"syslog text1"); syslog(LOG_INFO,"syslog text2"); syslog(LOG_INFO,"syslog text3"); closelog(); return 0; } /****************运行结果**************** getpid = 12718 注释:一般log信息都是在 /var/log/messages文件中存储 ubuntu中是在 /var/log/syslog文件中 May 31 20:24:24 ubuntu a.out[12718]: syslog text1 May 31 20:24:24 ubuntu a.out[12718]: syslog text2 May 31 20:24:24 ubuntu a.out[12718]: syslog text3 ***********************************/
参考
http://blog.csdn.net/bingqingsuimeng/article/details/8741389相关文章推荐
- 68_进程之使用syslog来记录调试信息
- 学习记录-Qt将调试信息保存到文件
- 使用syslog来记录调试信息
- J2ME程序在手机上测试记录下调试信息
- 调试的艺术学习笔记--命令记录
- 根据调试信息学习jbpm(一):jbpmConfiguration
- windbg学习笔记 FOR 内核调试(三) --进程句柄表HANDLE_TABLE
- GDI+ 学习记录(10): 线性渐变画刷 - LinearGradientBrush
- 希望能经常写自己的技术博客,记录我的一些学习进程
- 屏蔽syslog里记录由crond执行pam session的信息
- 关于PE病毒编写的学习(五)——病毒如何做标记和记录信息
- 20101229 学习记录:VS2005调试时int型变量值显示为16进制 & 无刷新DropdownList联动(二级联动)
- 根据调试信息学习jbpm(一):jbpmConfiguration
- 正在进行调试的Web服务器进程已由Internet信息服务(IIS)终止。可以通过在IIS中配置应用程序池Ping设置来避免这一问题。有关更多详细信息,请参见“帮助”
- 关于PE病毒编写的学习(五)——病毒如何做标记和记录信息
- 10-11-22工作学习记录(关于无线网络和有线网络同时使用的办法)
- c语言库函数syslog--将信息记录至系统日志文件
- 在SunOS8上调试通过的获取指定进程信息的程序
- 数据结构学习记录连载10(队列提高要求实现)
- windbg 学习笔记 FOR 内核调试(三) --进程句柄表HANDLE_TABLE