syslogd日志简介***
1、什么是syslogd
syslogd是一个守护进程,这个守护进程提供了一个记录特殊事件和消息的标准机制。通俗的讲,syslogd守护进程用于解决系统守护进程的日志记录问题。
syslogd记录的日志文件都是文本文件,一般都放在/var/log目录中。标准C函数库提供了syslogd的接口。
openlog是可选的,如果不调用openlog,则在第一次调用syslog时,自动调用openlog。
openlog函数:
第1个参数为ident,该参数常用来表示信息的来源。ident指向的字符信息会被固定地添加在每行日志的前面。
第2个参数 option用于指定openlog函数和接下来调用的syslog函数的控制标志。option的取值情况如表8.5所示,可以单独取其中的某个值,也 可以通过与运算来获得多种特性。
第3个参数为facility,这个要与syslogd守护进程的配置文件对应,日志信息会写入syslog.conf文 件指定的位置。
openlog的参数:
syslog的参数:
例:调用syslogd的接口函数,向日志文件里面写入信息进行测试。
总结:上述内容只是从应用层面上介绍了一下syslogd的函数调用机制。我们还可以配置/ect/syslog.conf来设置生日志的位置和相关信息。
守护进程日志的实现
syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程 日志主要涉及3个函数,分别是openlog、syslog和closelog函数。表8.4所示为这3个函数的具体信息。
表8.4 openlog、syslog和closelog函数
|
头文件 |
<syslog.h> |
||
|
函数形式 |
void openlog(const char *ident, int option, int facility); void syslog(int priority, const char *format, ...); void closelog(void); |
||
说明:调 用openlog是可选择的。如果不调用openlog,则在第一次调用syslog时,自动调用openlog。调用closelog也是可选择的,它 只是关闭被用于与syslog守护进程通信的描述符。调用openlog 使我们可以指定一个ident,以后, 此ident 将被加至每则记录消息中。ident 一般是程序的名称(例如 ,cron ,ine 等)
openlog函数中的第1个参数为ident,该参数常用来表示信息的来源。ident指向的字符信息会被固定地添加在每行日志的前面。第2个参数 option用于指定openlog函数和接下来调用的syslog函数的控制标志。option的取值情况如表8.5所示,可以单独取其中的某个值,也 可以通过与运算来获得多种特性。第3个参数为facility,这个要与syslogd守护进程的配置文件对应,日志信息会写入syslog.conf文 件指定的位置。
表8.5 openlong函数中的option取值表
|
参 数 |
说 明 |
|
LOG_CONS |
如果将信息发送给syslogd守护进程时发生错误,直接将相关信息输出到终端 |
|
LOG_NDELAY |
立即打开与系统日志的连接(通常情况下,只有在产生第一条日志信息的情况下才会打开与日志系统的连接) |
|
LOG_NOWAIT |
在记录日志信息时,不等待可能的子进程的创建 |
|
LOG_ODELAY |
类似于LOG_NDELAY参数,与系统日志的连接只有在syslog函数调用时才会创建 |
|
参 数 |
说 明 |
|
LOG_PERROR |
在将信息写入日志的同时,将信息发送到标准错误输出(POSIX.1-2001不支持该参数) |
|
LOG_PID |
每条日志信息中都包括进程号 |
参数facility的取值如表8.6所示。这些值与前面syslog.conf中的facility是存在对应关系的。
表8.6 openlog函数参数facility取值
|
facility参数 |
syslog.conf中对应的facility取值 |
|
LOG_KERN |
kern |
|
LOG_USER |
user |
|
LOG_MAIL |
|
|
LOG_DAEMON |
daemon |
|
LOG_AUTH |
auth |
|
LOG_SYSLOG |
syslog |
|
LOG_LPR |
lpr |
|
LOG_NEWS |
news |
|
LOG_UUCP |
uucp |
|
LOG_CRON |
cron |
|
LOG_AUTHPRIV |
authpriv |
|
LOG_FTP |
ftp |
|
LOG_LOCAL0~LOG_LOCAL7 |
local0~local7 |
syslog函数中的第一个参数priority表示消息的级别。与openlog函数中的facility参数类似,priority参数与level也存在对应的关系。priority取值和对应关系如表8.7所示。
表8.7 syslog函数参数priority取值
|
priority参数 |
syslog.conf中对应的level取值 |
|
LOG_EMERG |
emerg |
|
LOG_ALERT |
alert |
|
LOG_CRIT |
crit |
|
LOG_ERR |
err |
|
LOG_WARNING |
warning |
|
LOG_NOTICE |
notice |
|
LOG_INFO |
info |
|
LOG_DEBUG |
debug |
syslog函数的第二个参数为消息的格式,之后是格式对应的参数。函数的使用类似于printf函数。
参考代码如下:
点击(此处)折叠或打开
- #include <syslog.h>
- int main(int argc, char **argv)
- {
- syslog(LOG_ERR|LOG_USER,"test - %m/n");
- openlog("SyslogTest", LOG_CONS | LOG_PID, 0);
- syslog(LOG_DEBUG,"This is a syslog test message generated by program '%s'/n",argv[0]);
- closelog();
- return 0;
- }
执行结果:#cat /var/log/syslog
syslogd日志简介***的更多相关文章
- MySQL慢日志简介及Anemometer工具介绍
作者:王航威 - fordba.com 来源:http://fordba.com/box-anemometer-visual-mysql-slow.html,叶师傅对原文内容略有调整 备注:王航威是知 ...
- MySQL日志简介
一.MySQL日志简介 二.错误日志 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志. 默认位置: $MYSQL_HOME/data/ 开启方式:(MyS ...
- MySQL--10 日志简介
目录 一.MySQL日志简介 二.错误日志 三.一般查询日志 四.二进制日志 五.慢查询日志 一.MySQL日志简介 二.错误日志 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据 ...
- MySQL错误日志、binlog日志、查询日志、慢查询日志简介
1.数据库的日志是帮助数据库管理员,追踪分析数据库曾经发生的各种事件的有力依据,mysql中提供了错误日志.binlog日志(二进制日志).查处日志.慢查询日志.在此,我力求解决以下问题:各个日志的作 ...
- MySQL - binlog日志简介及设置
基本概念 binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志:其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句, ...
- linux日志:syslogd和klogd及syslog
一. 日志守护进程 syslogd和klogd是很有意思的守护进程,syslogd是一个分发器,它将接收到的所有日志按照/etc/syslog.conf的配置策略发送到这些日志应该去的地方,当然也包括 ...
- linux下怎么查看ssh的用户登录日志
linux下登录日志在下面的目录里: cd /var/log 查看ssh用户的登录日志: less secure linux日志管理: 1. 日志简介 日志对于安全来说,非常重要,他记录了系统每天发生 ...
- linux查看ssh用户登录日志与操作日志
linux查看ssh用户登录日志与操作日志 2013-11-01转载 ssh用户登录日志 linux下登录日志在下面的目录里: 代码如下 复制代码 cd /var/log 查看ssh用户的登录日 ...
- linux 查看登录日志
原文:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185976.html linux查看日志: # cd /var/log # le ...
随机推荐
- Spring -- spring结合aop 进行 tx&aspectj事务管理配置方法
1. tx 配置方法, 代码示例 javabean及其映射文件省略,和上篇的一样 CustomerDao.java, dao层接口 public interface CustomerDao { pub ...
- Find Min In Rotated Sorted Array,寻找反转序列中最小的元素。
问题描述:寻找反转序列中最小的元素. 算法分析:和寻找某个数是一个道理,还是利用二分查找,总体上分两种情况.nums[left]<=nums[mid],else.但是,在截取子序列的时候,有可能 ...
- git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...
git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...
- LeetCode第[34]题(Java):Search for a Range
题目:搜索目标范围 难度:Medium 题目内容: Given an array of integers nums sorted in ascending order, find the starti ...
- bitmap==null
bitmap==null 一.问题介绍 调试找bug的过程出现bitmap==null,而传过来创建bitmap的byte array有数据, 结果看了函数说明: 果断知道是那个图片没有办法decod ...
- SQLite在C#中的使用
SQLite是一款轻型的数据库,在一些数据量不太大的程序中,它暂用的资源非常低.支持很多操作系统和许多语言,所以还是很方便的.在C#中,要用的话可以通过网站来下载或者在VS中通过NuGet来下载.这个 ...
- 百度之星2017初赛A-1005-今夕何夕
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- MongoDB 高可用集群架构简介
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写.海量数据高效存储.高可扩展性和高可用性这些难题.不过就是因为这些问题Nosql诞生了. 转载自严澜的博文——<如何搭建高效的 ...
- Node net模块与http模块一些研究
这周遇到一个有意思的需求,端上同学希望通过 socket 传送表单数据(包含文件内容)到 node 端,根据表单里的文件名.手机号等信息将文件数据保存下来.于是我这样写了一下--socket_serv ...
- 【爬虫】beautiful soup笔记(待填坑)
Beautiful Soup是一个第三方的网页解析的模块.其遵循的接口为Document Tree,将网页解析成为一个树形结构. 其使用步骤如下: 1.创建对象:根据网页的文档字符串 2.搜索节点:名 ...