Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用syslog()并通读手册页告诉我openlog(),“如果在后续调用中未指定任何内容,则设施参数建立了一个默认值syslog()”
syslog()
openlog()
所以据我了解,这样做的方法是:1.调用openlog设置设施2.调用syslog()记录。3. 打电话closelog()。
openlog
closelog()
但是如果我在调用 syslog() 之前不调用 openlog() 怎么办?那设施是什么?“如果未指定,则建立要使用的默认值”是什么意思。如果没有,在哪里可以指定openlog()?
啊,我想我明白了。我认为这意味着
syslog(int 优先级, const char *message, ...);
这里的优先级可以是多个标志,如 freebsd 手册页示例中给出的:
syslog(LOG_INFO|LOG_LOCAL2, "foobar 错误: %m");
这里设施是 LOG_LOCAL2,优先级是 LOG_INFO。因此,如果在上述对 syslog() 的调用中未提供任何内容,则 openlog() 中提到的工具将生效。