我正在尝试使用syslog()
,通过阅读手册页可以知道,在openlog()
中,“facility参数建立了一个默认值,如果在对syslog()
的后续调用中未指定任何参数,则将使用该默认值。”
所以据我所知,这样做的方法是:1。呼叫openlog
设置设备2。呼叫syslog()
进行记录。三。呼叫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()都不是net,则syslog()工具是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16541492/