rsyslogd-学习&使用

rsyslogd-学习&使用简介【这一篇博客不是完整的解释rsyslogd的运行原理,只是一个自己查找资料的记录】rsyslog是一个syslogd的多线程增强版。现在Fedora和Ubuntu,rhel6默认的日志系统都是rsyslog了。rsyslog负责写入日志,logrotate负责备份和删除旧日志,以及更新日志文件学习资料1.官方网站官方网站:http://www.rsyslog.com/这是官

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

简介

【这一篇博客不是完整的解释 rsyslogd的运行原理,只是一个自己查找资料的记录】

rsyslog 是一个 syslogd 的多线程增强版。现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了。rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件

学习资料

1. 官方网站

官方网站: http://www.rsyslog.com/
这是官网的一张图片,可以看出来支持的功能还是非常多的,支持各种各样的传输方式,支持各种各样的数据库。

这里写图片描述

如果想全面的了解 rsyslogd,还是好好看看这个网站的内容的。但是我要功能比较简单,就是把我的程序日志放到指定的文件就行了,为了就是不用开发自己的日志系统,所以暂时没有看这些东西。搜了一些中文博客,就可以了。

2. 博客

找了几篇博客,这一篇是我最喜欢的。 http://blog.csdn.net/needle2/article/details/6826523
写的有条理,清楚简单,不想其它乱糟糟的博客内容,我也不需要安装,我使用的环境都默认都默认安装了 rsyslogd。
这篇博客写了我需要知道的方方面面,足以让我了解 rsyslogd。

3. 社区

还有一个问题没有解决,就是怎么配置 rsyslogd,让我的程序的日志输出到指定的文件,而不是输出到/var/log/message。所以搜索之,最后在一个社区里面找到了,这样的问题肯定会有人讨论,所以不出所料,找到了 http://www.newsmth.net/nForum/#!article/LinuxDev/34880

发信人: closer2me (木杉), 信区: LinuxDev
标  题: Re: 怎样用syslog写到自定义的log文件?
发信站: 水木社区 (Sun Aug 23 21:09:27 2009), 站内

APUE里面说
facility的 LOG_LOCAL0 ~ LOG_LOCAL7 是保留由本地使用,我程序里面用了也没用效果。

自己的程序就没法用syslog输出到自定义的log文件了吗?
【 在 saphires (萝卜) 的大作中提到: 】
: 定义的方法应该是错的
: syslog.conf里面的selector应该是facility.priority
: facility默认就只有那么几个,不过它是数字定义,可以自己整.
: ...................

-- 
Stay hungry, stay foolish. 

在这个帖子里,有这么一段讨论,我就猜到要怎么使用了

使用方法

因为 rsyslogd 预留了8个facility,LOG_LOCAL0 ~ LOG_LOCAL7。我们使用这个就足够了。
下面我在 centos6.6中做样例。

1. 首先修改配置文件

rsyslogd 的配置文件放为/etc/rsyslogd.conf
修改 这个文件,在这个文件里面添加下面这一行

 local5.*                                                /var/log/dpi.log

意思就是 local5的所有日志都存入/var/log/dpi.log文件中。

2. 重启 rsyslogd

使用这个命令重启就行了 /etc/init.d/rsyslog restart

3. 写代码

代码很简单,如下

#include <syslog.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
     syslog(LOG_ERR|LOG_LOCAL5,"syslog test\n");
}

具体参数的意义看学习资料里面的博客,只需要注意,这一条日志是发给LOG_LOCAL5的,也就是之前设置过的那个。

编译运行后,可以看到如下的内容

[zhijia@localhost log]$ sudo cat /var/log/dpi.log 
[sudo] password for zhijia: 
Feb 29 15:48:32 localhost a.out: syslog test
[zhijia@localhost log]$ 

因为这个log目录属于 root 的,所以想看这个文件,还是需要 root 权限的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年8月15日 上午6:46
下一篇 2022年8月15日 上午6:46


相关推荐

  • java程序员面试宝典第四版pdf下载

    java程序员面试宝典第四版pdf下载引言最近项目上线的频率颇高 连着几天加班熬夜 身体有点吃不消精神也有些萎靡 无奈业务方催的紧 工期就在眼前只能硬着头皮上了 脑子浑浑噩噩的时候 写的就不能叫代码 可以直接叫做 Bug 我就熬夜写了一个 bug 被骂惨了 阿里面试总结 1 一面首先确认对阿里的意向度 其次面试官会针对你曾经做过的项目来做具体技术的交流 你对项目细节是不是掌握到位 以及 java 技术基础和原理掌握程序 比如并发编程以及数据库和 JVM 三个方面 也会交流到分布式 线程池的实现等等 重点考察有没有深入钻研技术和技术上的亮点 2 二

    2026年3月16日
    3
  • mybatiscodehelperpro2.9.6激活(JetBrains全家桶)

    (mybatiscodehelperpro2.9.6激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~00OE5RWT28-eyJsaWNlb…

    2022年3月30日
    441
  • hashmap和hashtable的区别,说法错误的是_javamap的用法

    hashmap和hashtable的区别,说法错误的是_javamap的用法HashMap和Hashtable的区别一、HashMap简介HashMap是在JDK1.2中引入的Map的实现类。1.HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。2.HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurren…

    2026年1月20日
    7
  • Hugging Face Agents Course终极指南:从零开始掌握AI智能体开发

    Hugging Face Agents Course终极指南:从零开始掌握AI智能体开发

    2026年3月16日
    2
  • pytest parametrize fixture_参数化类型

    pytest parametrize fixture_参数化类型前言当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。官方示

    2022年8月6日
    10
  • 基于OpenCV3实现人脸识别(实践篇)[通俗易懂]

    基于OpenCV3实现人脸识别(实践篇)[通俗易懂]实践总结:首先了解做人脸识别的步骤 各个算法后面的原理 原理背后的相关知识的了解 人脸识别项目总遇到的问题由于篇幅原因,后面一篇写各个算法背后的原理,原理背后的相关知识的了解,人脸识别项目总遇到的问题首先感谢:https://blog.csdn.net/qq_37406130/article/details/78697244基于Opencv的人脸识别ht…

    2022年6月7日
    68

发表回复

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

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