syslog的使用

syslog是libc中自带的一套记录系统日志的接口,如果徒方便省事儿,不想借助其他额外的库来记日志,可以使用这一套接口。

syslog本身是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件。管理者可以通过查看系统记录,随时掌握系统状况。

UNIX的系统日志是通过syslogd(我机器上是rsyslogd)这个守护进程记录系统有关事件记录,也可以记录应用程序运作事件。通过适当的配置,我们还可以实现运行syslog协议的机器间通信,通过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的状况。

这一套接口中最常用的几个接口包括:syslog, openlog, closelog, setlogmask,调用格式如下

#include <syslog.h>
void openlog(char*ident, int option, int facility);
void syslog(int priority, char* format, ......);
void closelog();
int setlogmask(int maskpriority);

调用openlog是可选择的,如果步调用openlog,这在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它只是关闭被用于与syslog守护进程通信的描述符。

这些接口中参数的含义分别表示:

ident: 一个字符串,会出现在每条日志开头,一般用来指明是哪个程序产生了这条日志。

option: 指明一个位域,指明日志记录选项,这些选项包括:
- LOG_CONS:如果将信息发送给守护进程时发生错误,直接将相关信息输入到相关信息输出到终端。
- LOG_NDELAY:立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接)
- LOG_NOWAIT:在记录日志信息时,不等待可能的子进程的创建
- LOG_ODELAY:类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建
- LOG_PID:每条日志信息中都包括进程号

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

priority: 表明日志的级别。
- LOG_EMERG:emerg
- LOG_ALERT:alert
- LOG_CRIT:crit
- LOG_ERR:err
- LOG_WARNING:warning
- LOG_NOTICE:notice
- LOG_INFO:info
- LOG_DEBUG:debug

maskpriority: 指明需要记录的日志级别,默认允许记录所有级别的日志。可以使用LOG_UPTO宏函数指明高于某个级别的日志都可以记录。

例子:

1.直接记录一条错误消息

syslog(LOG_ERR, "who: internal error 23");

2.初始化日志文件,设置日志级别,然后记录一条错误消息

openlog ("ftpd", LOG_PID, LOG_DAEMON);
setlogmask (LOG_UPTO (LOG_ERR));
syslog (LOG_INFO, ""); 

3.将errno指明的错误信息记录成一条日志

syslog (LOG_INFO | LOG_LOCAL2, "foobar error: %m");

参考:https://www.ibm.com/support/knowledgecenter/ssw_aix_72/com.ibm.aix.basetrf2/syslog.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值