大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
rsyslogd是linux系统提供的一个守护进程,用来处理系统日志。rsyslogd守护进程既能够接受用户进程输出的日志,也能够接受内核日志。
ispurs-virtual-machine:~$ ps aux | grep rsyslogd
syslog 6033 0.0 0.0 256588 3328 ? Ssl 2月18 0:00 /usr/sbin/rsyslogd -n
1. syslog函数
用户进程可以通过syslog函数将日志输出到一个UNIX本地域socket类型(AF_UNIX)的文件/dev/log中,rsyslog守护进程负责监听/dev/log文件,并将用户进程的日志保存到指定的日志文件当中。通常保存到/var/log目录下,输出路径可以通过/etc/rsyslog.d/目录下的配置文件进行配置。
#include <syslog.h>
void syslog(int priority, const char *message, ...);
/* priority表示日志级别,以下列出了其部分取值 */
#define LOG_INFO 6
#define LOG_DEBUG 7
#define LOG_ERR 3
2. openlog、closelog
可以使用openlog改变syslog的输出方式,closelog函数关闭日志功能。
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
/* demo: rsyslog.cpp */
#include <syslog.h>
int main()
{
openlog("rsyslog.cpp", LOG_PID, LOG_USER);
syslog(LOG_INFO, "hello rsyslogd!");
closelog();
return 0;
}
最后得到的日志格式如下:
ispurs@ispurs-virtual-machine:/var/log$ sudo cat syslog
Feb 18 21:00:15 ispurs-virtual-machine rsyslog.cpp[7245]: hello rsyslogd!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170607.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...