【问题标题】:What is the syslog() facility if none is net using openlog()如果没有使用 openlog() 的网络,那么 syslog() 工具是什么
【发布时间】:2013-05-14 11:01:55
【问题描述】:
我正在尝试使用 syslog() 并阅读手册页告诉我,在 openlog() 中,“如果在随后对 syslog() 的调用中未指定任何内容,则该设施参数建立了一个默认值”
所以据我了解,这样做的方法是:1.致电openlog设置设施2.致电syslog()进行登录。 3. 拨打closelog()。
但是如果我在调用 syslog() 之前不调用 openlog() 会怎样?那设施是什么? “如果未指定,则建立要使用的默认值”是什么意思。如果不是openlog(),在哪里可以指定?
【问题讨论】:
标签:
c
unix
freebsd
syslog
【解决方案1】:
啊,我想我明白了。我认为这意味着对于
syslog(int priority, const char *message, ...);
这里的优先级可以是多个标志,如 freebsd 手册页示例中所述:
syslog(LOG_INFO|LOG_LOCAL2, "foobar 错误: %m");
这里的设备是 LOG_LOCAL2,优先级是 LOG_INFO。因此,如果在上述对 syslog() 的调用中没有提供任何内容,则 openlog() 中提到的功能将生效。