【syslogd守护进程】

由于守护进程没有控制终端进行信息的输出,而有些情况还需要根据进程提供的信息进行系统管理和维护工作。因此Linux提供了syslogd守护进程,专门用于接受其他守护进程提供的信息记录在指定位置来解决日志记录的问题。

1.syslogd守护进程

负责记录、发送系统或者工具产生的信息,根据配置文件信息对消息的去向做出处理(记录到日志、输出到控制台、转发给用户、转发到网络上其他主机的syslogd进程处理)。

2.syslogd守护进程配置文件

配置文件/etc/syslog.conf内容如下:

gaolu@gaolu-desktop:~$

gaolu@gaolu-desktop:~$ cd /etc

gaolu@gaolu-desktop:/etc$ ls -l syslog.conf

-rw-r--r-- 1 root root 1626 2008-08-30 08:40 syslog.conf

gaolu@gaolu-desktop:/etc$ cat syslog.conf

#  /etc/syslog.conf Configuration file for syslogd.

#

#   For more information see syslog.conf(5)

#   manpage.

#

# First some standard logfiles.  Log by facility.

#

auth,authpriv.*   /var/log/auth.log

*.*;auth,authpriv.none  -/var/log/syslog

#cron.*    /var/log/cron.log

daemon.*   -/var/log/daemon.log

kern.*    -/var/log/kern.log

lpr.*    -/var/log/lpr.log

mail.*    -/var/log/mail.log

user.*    -/var/log/user.log    //下面示例程序log信息追加的文件

#

# Logging for the mail system.  Split it up so that

# it is easy to write scripts to parse these files.

#

mail.info   -/var/log/mail.info

mail.warning   -/var/log/mail.warn

mail.err   /var/log/mail.err

# Logging for INN news system

#

news.crit   /var/log/news/news.crit

news.err   /var/log/news/news.err

news.notice   -/var/log/news/news.notice

#

# Some `catch-all' logfiles.

#

*.=debug;\

auth,authpriv.none;\

news.none;mail.none -/var/log/debug

*.=info;*.=notice;*.=warning;\

auth,authpriv.none;\

cron,daemon.none;\

mail,news.none  -/var/log/messages

#

# Emergencies are sent to everybody logged in.

#

*.emerg    *

#

# I like to have messages displayed on the console, but only on a virtual

# console I usually leave idle.

#

#daemon,mail.*;\

# news.=crit;news.=err;news.=notice;\

# *.=debug;*.=info;\

# *.=notice;*.=warning /dev/tty8

# The named pipe /dev/xconsole is for the `xconsole' utility.  To use it,

# you must invoke `xconsole' with the `-file' option:

#

#    $ xconsole -file /dev/xconsole [...]

#

# NOTE: adjust the list below, or you'll go crazy if you have a reasonably

#      busy site..

#

daemon.*;mail.*;\

news.err;\

*.=debug;*.=info;\

*.=notice;*.=warning |/dev/xconsole

说明(具体参数取值略):

以user.*    -/var/log/user.log为例:

(1)消息类型:格式为facility.level,user.*表示facility为user(用户日志信息,对应函数参数为LOG_USER),level为*表示所有优先级的消息

(2)处理方案:将日志信息记录在-/var/log/user.log文件中

【守护进程日志实现】

主要涉及三个函数:

1)void openlog(const char* ident, int option, int facility);

打开系统日志链接,必须步骤。

ident:信息来源,哪个可执行程序

option:控制标志的参数,多个可以同时使用,用|操作合并

facility:指定消息类型,与配置文件对应,日志会写入配置文件指定位置。

2)void syslog(int priority,const char* format,....);

priority:消息级别,与openlog中的facility可以共同决定日志写入位置。

format:消息格式,再后面为格式对应的参数,类似printf的使用

3)void closelog();

关闭系统日志链接,可选步骤。

【代码】

工作流程:

|-------------------------------------------|

|openlog()------>syslog()------>colselog()  |

|-------------------------------------------|

#include

#include

int main(int argc,char* argv[])

{

int i=0;

openlog(argv[0],LOG_CONS|LOG_PID,LOG_USER);

while(i<=5)

{

syslog(LOG_INFO,"%d log info test....",i);  //增加6条log信息

i++;

}

closelog();

return 0;

}

【执行结果】

gaolu@gaolu-desktop:~$ gcc -o syslog.o syslog.c

gaolu@gaolu-desktop:~$

gaolu@gaolu-desktop:~$

gaolu@gaolu-desktop:~$ ./syslog.o

gaolu@gaolu-desktop:~$

gaolu@gaolu-desktop:~$ cd /var/log

gaolu@gaolu-desktop:/var/log$ cat user.log      //查看对应日志文件增加内容

Mar 10 23:55:45 gaolu-desktop Cleanup, done. Exitting...

Mar 11 21:40:50 gaolu-desktop pulseaudio[5136]: ltdl-bind-now.c: Failed to find original dlopen loader.

Mar 11 21:40:50 gaolu-desktop pulseaudio[5139]: alsa-util.c: Device front:0 doesn't support 44100 Hz, changed to 44099 Hz.

Mar 11 21:41:38 gaolu-desktop pulseaudio[5139]: module-x11-xsmp.c: X11 session manager not running.

Mar 11 21:41:38 gaolu-desktop pulseaudio[5139]: module.c: Failed to load  module "module-x11-xsmp" (argument: ""): initialization failed.

...............................//略去中间内容

Mar 15 18:57:30 gaolu-desktop pulseaudio[5125]: alsa-util.c: Device front:0 doesn't support 44100 Hz, changed to 44099 Hz.

Mar 15 18:57:59 gaolu-desktop pulseaudio[5125]: module-x11-xsmp.c: X11 session manager not running.

Mar 15 18:57:59 gaolu-desktop pulseaudio[5125]: module.c: Failed to load  module "module-x11-xsmp" (argument: ""): initialization failed.

Mar 15 19:00:08 gaolu-desktop python: io/hpmud/pp.c 627: unable to read device-id ret=-1

Mar 15 19:00:12 gaolu-desktop hp: io/hpmud/pp.c 627: unable to read device-id ret=-1

Mar 15 20:53:41 gaolu-desktop ./syslog.o[7429]: 0 log info test....

Mar 15 20:53:41 gaolu-desktop ./syslog.o[7429]: 1 log info test....

Mar 15 20:53:41 gaolu-desktop ./syslog.o[7429]: 2 log info test....

Mar 15 20:53:41 gaolu-desktop ./syslog.o[7429]: 3 log info test....

Mar 15 20:53:41 gaolu-desktop ./syslog.o[7429]: 4 log info test....

Mar 15 20:53:41 gaolu-desktop ./syslog.o[7429]: 5 log info test....

gaolu@gaolu-desktop:/var/log$

gaolu@gaolu-desktop:/var/log$

linux多进程的日志记录实现,Linux守护进程的日志实现相关推荐

  1. linux启用日志记录功能,Linux下启用Open vSwitch的日志功能以便调试和排障

    问题 我试着为我的Open vSwitch部署排障,鉴于此,我想要检查它的由内建日志机制生成的调试信息.我怎样才能启用Open vSwitch的日志功能,并且修改它的日志等级(如,修改成INFO/DE ...

  2. Linux系统编程---11(会话,守护进程,创建守护进程)

    会话 创建会话 创建一个会话需要注意以下6点注意事项 调用进程不能是进程组组长,该进程变成新会话首进程 该进程成为一个新进程组的组长进程 需要root权限(nbuntu不需要) 新会话丢弃原有的控制终 ...

  3. Linux C语言 创建一个简单的守护进程

    一.什么是守护进程?         首先我们先来简单了解一下什么是守护进程,守护进程在Linux中说白了就是一个后台进程,在后台默默服务,不受终端(会话)控制,生命周期长,在系统引导装入时启动,在系 ...

  4. Linux学习之系统编程篇:守护进程(精灵进程、后台进程)

    一.背景 一般情况下,启动终端(shell),系统会创建一个会话(shell 进程是会长),经过后续各种操作,该会话中会存在多个进程组,每个进程组中也会有多个进程(父进程是组长),若此时关闭 shel ...

  5. linux下为.net core应用创建守护进程

    1.Supervisor 安装 yum install python-setuptools easy_install supervisor 2.配置 Supervisor mkdir /etc/sup ...

  6. linux的sssd服务,系统安全服务守护进程SSSD

    SSSD是自红帽企业版Linux6起新加入的一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权.SSSD是 介于本地用户和数据存储之间的进程,本地客户端首先连接 ...

  7. 【日志记录】基于AOP实现自定义日志注解,并支持动态设置注解内容

    前言 平时在java项目开发过程中,涉及到记录操作日志的场景很多,有时候大家习惯把操作日志的生成代码写到业务代码中,这样造成了日志和业务代码的耦合性比较高.可维护性也不强,易读性更差,更多的时候是使用 ...

  8. easylogging++的那些事(四)源码分析(二)日志记录宏(一)CLOG宏(三)日志输出

    日志输出 Writer 析构函数 Writer::processDispatch 接口 Writer::triggerDispatch 接口 base::LogDispatcher::dispatch ...

  9. linux日志记录分析,linux日志朔源分析记录

    lastlog 记录用户最后一次登录情况 只有root最近登录过 lastlog -u 用户名或者uid uid 直接在passwd文件中的低三位可以看到 lastb 记录用户用户登录失败的用户记录, ...

最新文章

  1. php设置背景图片的代码,css设置背景图片如何实现?(代码实例)
  2. 字符串、数组、集合在使用时出现空指针怎么办?_03
  3. python专业方向 | 文本相似度计算
  4. 数据湖生态联盟正式成立
  5. java修改注册表_Java的Windows安装程序对注册表的修改
  6. 新版中日交流标准日本语多媒体版(全25CD)下载
  7. 【axure教程】产品流程图的制作方法详解
  8. 【ARM 】CMSIS
  9. Flink学习笔记之DataStream API 简介
  10. 分享五个最好的BT下载软件
  11. Web 前端学习之表单制作、网页超链接
  12. 设计模式的艺术 行为型模式之观察者模式
  13. BUUCTF--[0CTF 2016]piapiapia
  14. 微信小程序最新获取头像以及昵称方法
  15. Python网络爬虫(七):百度文库文章爬取器
  16. Object类型转换为Integer:
  17. 12弦原声大吉他音源 Orange Tree Samples Evolution Jumbo 12 Kontakt
  18. ArcGIS中地表径流
  19. Vjudge B - Grandpa is Famous
  20. 连接ipv6服务器未响应,IPv6过渡技术未响应

热门文章

  1. Javascript语义分析器,教你如何实现Jquery库
  2. SEAL全同态加密开源库(十二) CKKS-源码浅析
  3. 下载并编译Android模拟器Linux内核goldfish教程
  4. Ubuntu折腾--优化wine 微信小黑框处理
  5. Sencha的Eclipse插件提示和技巧
  6. 献给经常加班熬夜的你们
  7. 低代码数字孪生平台,魅力何在?
  8. PUCCH(3)matlab验证ZC序列的性质
  9. 每日一算法:矩阵中最大正方形面积
  10. html阅读器 怎样卸载,怎样彻底卸载掉金山pdf阅读器?