linux syslog函数,Linux syslog相关函数详解

介绍

syslog是Unix系统的日志系统。可以将日志记录在本地系统中。

一个完整的syslong日志包含如下信息:程序模块 | 严重性 | 时间 | 主机名 | 进程名 | 进程ID | 正文。

syslong相关函数

1. openlog()函数。调用openlog()函数时可选的。如果不调用openlog()函数,则在第一次调用syslong()函数时打开日志连接。

#include

/*

* ident: 标记,ident表示的字符串将添加在每行日志的前面,用以标记日志.

*

* option: 调用syslong()函数时的控制标志,标志的含义如下:

* LOG_CONS: 如果将日志发送给syslogd守护进程时发生错误,则将日志显示到终端。

* LOG_NDELAY: 立即打开与系统日志的连接。

* LOG_ODELAY: 类似于LOG_NDELAY,与系统日志的连接只有在调用syslog()函数时才建立。

* LOG_PERROR: 将信息写入日志文件的同时,将日志发送到错误输出。

* LOG_PID: 每条日志中都包含进程ID。

*

* facility: 指定记录日志程序的类型。

* LOG_AUTH: 认证系统(login, su, getty等)。

* LOG_AUTHPRIV: 同 LOG_AUTH 但只登陆到所选择的单个用户可读的文件中。

* LOG_CRON: cron守护进程。

* LOG_DAEMON: 其他系统守护进程。

* LOG_FTP: 文件传输协议:ftpd、tftpd.

* LOG_KERN: 内核产生的消息.

* LOG_LPR: 系统打印机缓冲池:lpr、lpd.

* LOG_MAIL: 电子邮件系统.

* LOG_NEWS: 网络新闻系统.

* LOG_SYSLOG: 由syslogd(8)产生的内部消息

* LOG_USER: 随机用户进程产生的消息.

* LOG_UUCP: UUCP 子系统

* LOG_LOCAL0 ~ LOG_LOCAL7: 本地使用保留

*/

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

2. syslog()函数。syslog()函数类似于write()函数,往系统日志文件中写日志。系统日志文件的存储位置一般在/var/log/目录下。syslog()函数把日志写在/var/log/syslog文件中。

#include

/*

* priority: 表示日志级别。

* LOG_EMERG: 紧急情况.

* LOG_ALERT: 应该被立即改正的问题,如系统数据库破坏.

* LOG_CRIT: 重要情况,如硬盘错误.

* LOG_ERR: 错误.

* LOG_WARNING: 警告信息.

* LOG_NOTICE: 不是错误情况,但是可能需要处理.

* LOG_INFO: 情报错误.

* LOG_DEBUG: 包含情报的信息,通常指在调试一个程序时使用.

*/

void syslog(int priority, const char *fmt, ...);

3. closelog()函数。关闭日志设备。closelog()函数调用也是可选的,它只是关闭被用于与syslog守护进程通信的描述符。

#include

void closelog(void);

syslog实例

#include

#include

#include

#include

#define BUFSZ 4096

static void log_msg(const char *fmt, ...)

{

char buf[BUFSZ];

va_list ap;

va_start(ap, fmt);

vsnprintf(buf, BUFSZ - 1, fmt, ap);

strcat(buf, "\n");

openlog("test", LOG_CONS | LOG_NDELAY | LOG_PERROR, LOG_USER); // 该行可选

syslog(LOG_INFO, "%s", buf);

closelog(); // 该行可选

}

int main(int argc, char *argv[])

{

log_msg("Hellow World. This is a syslog test.");

exit(0);

}

运行该程序后,可以在/var/log/syslog文件中看到相关的打印信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值