1

我正在尝试使用syslog()并通读手册页告诉我openlog(),“如果在后续调用中未指定任何内容,则设施参数建立了一个默认值syslog()

所以据我了解,这样做的方法是:1.调用openlog设置设施2.调用syslog()记录。3. 打电话closelog()

但是如果我在调用 syslog() 之前不调用 openlog() 怎么办?那设施是什么?“如果未指定,则建立要使用的默认值”是什么意思。如果没有,在哪里可以指定openlog()

4

1 回答 1

1

啊,我想我明白了。我认为这意味着

syslog(int 优先级, const char *message, ...);

这里的优先级可以是多个标志,如 freebsd 手册页示例中给出的:

syslog(LOG_INFO|LOG_LOCAL2, "foobar 错误: %m");

这里设施是 LOG_LOCAL2,优先级是 LOG_INFO。因此,如果在上述对 syslog() 的调用中未提供任何内容,则 openlog() 中提到的工具将生效。

于 2013-05-14T11:13:06.180 回答