分类:
2008-12-25 19:08:22
13.4 error logging
作为一个daemon,它没有controlling terminal, 那么它不能写给用户看,但是也最好不要让所有的daemon process都将其log写到/dev/console,因为console一般是给system的。那么可以写成文件。但是有个缺点,如果每个daemon都写成自己的log文件又不易管理。所以用另一个daemon来管理吧,即syslogd。
Syslog的log消息来源于三种:
1. User process使用/dev/log这个unix domain datagram socket向syslogd发消息。
2.来自网络上的其他程序向本机的udp 端口514发送的udp
datagram,也被syslogd处理
3.Kernel向/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 |