大家好,又见面了,我是你们的朋友全栈君。

rsyslogd是linux系统提供的一个守护进程,用来处理系统日志。rsyslogd守护进程既能够接受用户进程输出的日志,也能够接受内核日志。

代码语言:javascript复制ispurs-virtual-machine:~$ ps aux | grep rsyslogd

syslog 6033 0.0 0.0 256588 3328 ? Ssl 2月18 0:00 /usr/sbin/rsyslogd -n1. syslog函数用户进程可以通过syslog函数将日志输出到一个UNIX本地域socket类型(AF_UNIX)的文件/dev/log中,rsyslog守护进程负责监听/dev/log文件,并将用户进程的日志保存到指定的日志文件当中。通常保存到/var/log目录下,输出路径可以通过/etc/rsyslog.d/目录下的配置文件进行配置。

代码语言:javascript复制#include

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

/* priority表示日志级别,以下列出了其部分取值 */

#define LOG_INFO 6

#define LOG_DEBUG 7

#define LOG_ERR 32. openlog、closelog可以使用openlog改变syslog的输出方式,closelog函数关闭日志功能。

代码语言:javascript复制void openlog(const char *ident, int option, int facility);

void closelog(void);

/* ident参数表示的字符串可以添加到日志消息的日期和时间之后 */

/* option可以对syslog调用的行为进行配置,它可以取以下值 */

#define LOG_PID 0x01 // 在日志消息中包含程序PID

/* facility用来修改syslog函数中的默认设施值,默认值为LOG_USER */3. demo代码语言:javascript复制/* demo: rsyslog.cpp */

#include

int main()

{

openlog("rsyslog.cpp", LOG_PID, LOG_USER);

syslog(LOG_INFO, "hello rsyslogd!");

closelog();

return 0;

}最后得到的日志格式如下:

代码语言:javascript复制ispurs@ispurs-virtual-machine:/var/log$ sudo cat syslog

Feb 18 21:00:15 ispurs-virtual-machine rsyslog.cpp[7245]: hello rsyslogd!发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170607.html原文链接:https://javaforall.cn

Copyright © 2088 欧洲世界杯预选赛_赛程世界杯 - tvzfj.com All Rights Reserved.
友情链接