LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1160|回复: 5

关于syslog函数的相关问题(正在学习APUE v2)

[复制链接]
发表于 2006-10-24 10:52:43 | 显示全部楼层 |阅读模式
小弟最近学习APUE v2;学习到了守护进程一章,关于出错记录的接口syslog函数,有些不太明白:

(1) syslog函数发送的日志消息会写到具体哪个文件里呢?
    比如这句: syslog(LOG_ERR, "unexpected file descriptors %d", fd0);
      
      书上说syslog写往/dev/log的日志由syslogd读取,并根据/etc/syslog.conf文件决定消息应送向何处,但我看不懂/etc/syslog.conf,所以不知道上面这句消息会写到哪个文件里。

(2) 书中有一程序段是这样写的:
    syslog(LOG_ERR, "open error for %s: [color="Red"]%m", filename);
      请问其中的%m是什么意思呢?C语言中好像没有这个格式吧?

谢谢!
发表于 2006-10-24 11:10:26 | 显示全部楼层
第二个参数“***”类似printf的格式串,%m 它将被替代成与当前errno值对应的出错消息。
回复 支持 反对

使用道具 举报

发表于 2006-10-24 11:10:45 | 显示全部楼层
第二个参数“***”类似printf的格式串,%m 它将被替代成与当前errno值对应的出错消息。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-24 19:37:01 | 显示全部楼层
非常感谢“偶然6000”!
但第一个问题还没有解决。。。
回复 支持 反对

使用道具 举报

发表于 2006-10-24 22:39:00 | 显示全部楼层
第一个问题,你其实已经知道答案了,就是/etc/syslog.conf。
回复 支持 反对

使用道具 举报

发表于 2006-10-30 14:02:47 | 显示全部楼层
举例来说:
向 /etc/syslog.conf 中增加一行
user.*         /var/log/uuu.log

这样,你的应用程序调用syslog()写的内容,会存放在 /var/log/uuu.log 这个文件里面。
当然,你应该先调用openlog()
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表