Chinaunix首页 | 论坛 | 博客
  • 博客访问: 993163
  • 博文数量: 200
  • 博客积分: 5011
  • 博客等级: 大校
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 15:07
文章分类

全部博文(200)

文章存档

2009年(12)

2008年(190)

我的朋友

分类:

2008-12-25 19:08:22

13.4 error logging

作为一个daemon,它没有controlling terminal, 那么它不能写给用户看,但是也最好不要让所有的daemon process都将其log写到/dev/console,因为console一般是给system的。那么可以写成文件。但是有个缺点,如果每个daemon都写成自己的log文件又不易管理。所以用另一个daemon来管理吧,即syslogd

Sysloglog消息来源于三种:

1 User process使用/dev/log这个unix domain datagram socketsyslogd发消息。

2.来自网络上的其他程序向本机的udp 端口514发送的udp datagram,也被syslogd处理

3Kernel/dev/klog发送的数据。Kernel通过log函数来实现,普通process可以通过打开,读取/dev/klogd来获取信息。

 

针对这三种log信息数据来源,修改/etc/syslog.conf,可以配置让syslogd对不同的来源,不同的用途的信息被怎么样处理。

当然,我们不便直接对/dev/下的设备操作,所以,使用如下封装好的函数就可以了:

#include

 

void openlog(const char *ident, int option, int

 facility);

 

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

 

void closelog(void);

 

int setlogmask(int maskpri);

 

Returns: previous log priority mask value

 

所谓logmask的概念,就是为本进程设置一个mask,只有满足该mask中指定的属性的log,才会真正被发送给syslogd
阅读(1164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~