syslog提供一个机制,给各个应用程序记录日志。glibc提供了接口来发送log给syslog的守护进程,这个守护进程通常是syslogd。
c库提供的接口:
1 2 3 4 5  |        void openlog(const char *ident, int option, int facility);       void syslog(int priority, const char *format, ...);       void closelog(void);       void vsyslog(int priority, const char *format, va_list ap); | 
syslogd和c库通过/dev/log通信,这是一个Unix域套接字。syslogd监听这个套接字,收集所有的syslog。
1 2  | # ls /dev/log -lsrw-rw-rw-    1 root     root             0 Oct  3 01:32 /dev/log | 
在openwrt系统里面,ubox提供了logd守护进程,收集syslog和kernel log。ubox还提供logread程序,读取所有logd收集的syslog和kernel log。
busybox提供logger程序,实现在命令行记录syslog。
参考:
glibc manual: https://www.gnu.org/software/libc/manual/html_node/Syslog.html