c - 如果没有使用 openlog() 的网络,那么 syslog() 设施是什么

标签 c unix freebsd syslog

我正在尝试使用 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/

相关文章:

c - 思考TAILQ的tqe_prev不指向前一个节点的目的

c - make 找不到源文件,直接运行 cc 就可以了

c - mktime 和 tm_isdst

c++ - 拦截 Windows 文件系统,编辑数据?

linux - shell脚本中"if[ 0 -lt 1] command not found"错误

c - 使用 2 个管道的 3 个进程同步

linux - SSH 在没有连接到 shell 脚本中的服务器的情况下退出

c - STM32 HAL GPIO中断计数太多

c - 使用c读取另一个程序中的变量

c - 如何在c中对矩阵(二维数组)进行排序?