Linux 版 (精华区)

发信人: tcpip (偶的昵称改了), 信区: Linux
标  题: 容易忽视的函数和调用(五)-- syslog    cpu
发信站: 哈工大紫丁香 (Wed Jan  5 16:44:26 2000), 转信

发信人: cpu (奔腾的心), 信区: Solaris

标  题: 容易忽视的函数和调用(五)-- syslog    cpu

发信站: 华南网木棉站 (Tue Oct 13 17:05:48 1998), 转信

这一节说一下syslog吧, 许多人都知道有这么个函数, 但是不一定都去用它.

意义很明显, 该函数是用来作log的, 可以把错误或者警告信息写到指定的日

志文件或者是控制台console上面去.

     #include <syslog.h>

     void syslog(int priority, char *logstring, /* parameters  */

     ...);

priority指定log信息的level和facility, level指明log的级别, 有0~7八个

级别, 分别是LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING,

LOG_NOTICE, LOG_INFO, LOG_DEBUG, 缺省的是LOG_NOTICE, LOG_DEBUG级别

最低. facility可以用来标识作日志的进程类型, 比如cron和ftp分别有自己

的facility分别是LOG_CRON和LOG_FTP, 缺省的是LOG_USER. 其它还有诸如

LOG_KERN, LOG_MAIL, LOG_UUCP, LOG_NEWS等等, 请看manual.

log的去向? 到文件还是到console? 在/etc/syslog.conf里设置, 比如:

*.err;kern.notice;auth.notice;user.none         /dev/console

*.err;kern.debug;daemon.notice;mail.crit;user.none      /var/adm/messages

*.err, 所有facility的LOG_ERR级别的log同时写入console和/var/adm/messages;

kern.notice, facility为LOG_KERN的进程发出LOG_NOTICE级别的log写入console;

同理你可以定义自己的log行, 比如: local1.notice  /dev/console表示facility

为LOG_LOCAL1, level为notice的日志写入控制台.

参数char *logstring, ...同printf的调用格式. 比如:

syslog(LOG_USER|LOG_ERR, "process %d error", getpid( ));

syslog调用实际上是通过unix域或者udp socket连接syslog发日志请求然后由syslogd

来作日志的, 如果是通过udp的(端口514), 则/etc/hosts里面会有loghost行, 指出

syslogd所在主机, solaris就是这样的, 有一次偶删了loghost, 搞得很多应用出错

做不了log.

syslog一个很大的用处是可以让非root身份的应用程序往console上写信息, 对于有

root权限的应用, 很简单:

        fd = open("/dev/console", O_WRONLY);

        dup2(fd, 2)

        ...

        perror(...) 或者fprintf(stderr, ...);

        ...

但是对于非root身份的应用, open那句肯定出错, 没权限, 所以只好求助于syslog了.

另外还有openlog函数可以在log行头加进程名称和ID以及其它选项, man openlog

man closelog...

--

        ******************************************************

                

               青岛啤酒,可能是世界上最好的啤酒 。。。 。。。

        ******************************************************

※ 修改:.xh 于 Jan  5 15:33:37 修改本文.[FROM: 202.38.248.62]

※ 来源:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.96.151.222]--

※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 202.118.239.10]

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.074毫秒