Linux日志文件与syslog函数介绍

本文介绍了Linux系统中的syslog服务,包括日志文件内容的一般形式、服务类型、信息等级以及rsyslogd的配置文件。此外,还详细讲解了syslog API中的openlog、syslog、closelog函数,并给出了一个简单的示例。文章还探讨了日志文件的轮替机制logrotate,阐述了logrotate的配置文件和规则,以及如何设置日志文件的转储周期和压缩选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:
Linux日志文件与syslog函数介绍


在我们程序运行的过程中,由于需要不间断的运行。当发生错误的时候就得产生错误的信息并且反馈给管理人员知道。特别的对于运行于后台的daemon程序,产生的日志消息更是能够帮助我们更加清楚全面的掌握我们程序的运行状况。
除此之外,Linux系统中各种大大小小的消息和错误都会使用日志,所以通过日志分析也能够让我们知道系统出了什么问题,以及是否有不当的操作等等,这也是众多系统管理员的一大利器!

今天我们就谈谈在Linux平台上如何使用日志。


syslog服务

在具体的使用前我们需要先了解日志服务的一个deamon——rsyslogd。
rsyslogd相比较于syslogd提供了更多的服务,在我使用的Ubuntu15.10下,也是自带了rsyslogd。
rsyslog为我们提供日志的服务。它像众多的deamon程序一样默默的提供着服务。
在Bash下输入

ps aux|grep rsyslogd

得到如下
rsyslog
可以看出rsyslog是一个由父进程为init的进程的守护进程。
它也就是为我们提供日志服务的进程了!
那么,这个进程为我们产生的日志消息又在哪呢?
/var/log/目录下,有各种各样的消息日志在等着我们查看呢,快去先看一眼吧!

日志文件内容的一般形式

如果我们打开/var/log/这个目录一看,就会发现有很多的文件,除无后缀的文件外还包括以.log结尾和以.数字结尾的文件(这与后面会说到的”日志文件轮替”相关)。
让我们先随便打开一个文件
日志格式示例
这是从我系统中/var/log/syslog文件截取的一段,可以看到其中包含的日志信息格式:
[日期][主机][模块][信息]
所传达的意思就是:

3月22日的18:03:44 由Innocence这台主机的dnsmasq[PID为1441]传来的消息,消息内容为”using nameserver 115.159.55.17#53”

怎么样,这样的消息格式是不是很简单明了?

服务类型

rsyslogd为我们提供了很多种的服务类型,如果你在Bash中man syslog一下,就可以在facility参数里看到全部的服务啦。
这里列举一部分后面会用到的:

  • LOG_AUTH——认证系统:login、su等
  • LOG_AUTHPRIV——同上,单值登陆到对应用户的可读文件中
  • LOG_MAIL——电子邮件系统
  • LOG_DAEMON——其他系统守护进程
  • LOG_NEWS——网络新闻系统
  • LOG_LOCAL0 through LOG_LOCAL7

这些都是rsyslogd支持的服务名称,那么这些是什么意思呢?
举个例子来说:
在一些与邮件相关的软件中设计日志文件记录时,都会主动调用rsyslogd内的mail服务名称(LOG_MAIL),所以不管多少种不同的软件程序,由它们的日志消息在rsyslogd看来都是mail这一类型的服务了。所以我们只需要在软件中将消息统统抛给rsyslogd,再通过修改配置文件就能够让它帮我们组织管理日志文件了。
——后面会有更详细的解释

信息等级

既然我们已经有了记录消息的地方,那么不同的消息也要分个轻重缓急吧?
如果是严重到会导致系统崩溃的错误消息,那么我们也当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值