进程学习10--syslog记录调试信息

概述

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值