荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: FreeBSD (FreeBSD), 信区: Linux
标  题: 容易忽视的函数和调用(五)-- syslog(zz)
发信站: BBS 荔园晨风站 (Sat Jan  8 17:52:32 2000), 站内信件

【 以下文字转载自 FreeBSD 的信箱 】
【 原文由 liugang.bbs@melon.gznet.edu.cn 所发表 】
发信人: cpu (奔腾的心), 信区: Solaris
标  题: 容易忽视的函数和调用(五)-- syslog(zz)
发信站: 华南网木棉站 (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: 210.39.3.50]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 210.39.3.71]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店