我正在尝试使用 syslog()
并且通读手册页告诉我在 openlog()
中,“facility 参数建立了一个默认值,如果在随后调用 syslog()
时未指定任何内容”
据我了解,方法是: 1. 调用openlog
设置设施 2. 调用syslog()
进行记录。 3. 调用closelog()
。
但是如果我在调用 syslog() 之前不调用 openlog() 怎么办?那设施是什么? “如果未指定,则建立要使用的默认值”是什么意思。如果不是 openlog()
,可以在哪里指定?
最佳答案
啊,我想我明白了。我认为这意味着对于
syslog(int priority, const char *message, ...);
这里优先级可以是多个标志,如 freebsd 手册页示例中给出的:
syslog(LOG_INFO|LOG_LOCAL2, "foobar 错误: %m");
这里的设施是 LOG_LOCAL2,优先级是 LOG_INFO。因此,如果在上面调用 syslog() 时未提供任何功能,则 openlog() 中提到的功能将生效。
关于c - 如果没有使用 openlog() 的网络,那么 syslog() 设施是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16541492/