前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux系统日志文件查看方法_linux系统日志保存期限

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

作者头像
全栈程序员站长
发布2022-09-21 10:36:22
6.1K0
发布2022-09-21 10:36:22
举报

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

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 -n

1. syslog函数

用户进程可以通过syslog函数将日志输出到一个UNIX本地域socket类型(AF_UNIX)的文件/dev/log中,rsyslog守护进程负责监听/dev/log文件,并将用户进程的日志保存到指定的日志文件当中。通常保存到/var/log目录下,输出路径可以通过/etc/rsyslog.d/目录下的配置文件进行配置。

代码语言:javascript
复制
#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函数关闭日志功能。

代码语言: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 <syslog.h>
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. syslog函数
  • 2. openlog、closelog
  • 3. demo
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档