linux系统日志文件查看方法_linux系统日志保存期限

linux系统日志文件查看方法_linux系统日志保存期限Linux系统日志rsyslogdrsyslogd是linux系统提供的一个守护进程,用来处理系统日志。rsyslogd守护进程既能够接受用户进程输出的日志,也能够接受内核日志。ispurs-virtual-machine:~$psaux|greprsyslogdsyslog60330.00.02565883328?Ssl2月180:00/usr/sbin/rsyslogd-n1.syslog函数用户进程可以通过syslog函

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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  218   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!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170607.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号