openlog ()-打开系统控制日志
标准
标准/扩展 | C 或 C++ | 依赖关系 |
---|---|---|
XPG4.2
单一 UNIX 规范版本 3 |
两个 |
格式
#define _XOPEN_SOURCE_EXTENDED 1
#include <syslog.h>
void openlog(const char *ident, int logopt, int facility);
一般描述
openlog () 函数可选择打开与日志记录工具的连接,并设置影响对 syslog () 函数的后续调用的进程属性。 自变量 ident 是一个以每条消息为前缀的字符串。 logopt 是指示日志记录选项的位字段。 logopt 的当前值为:
- LOG_CONS
- 如果无法将消息发送到日志记录工具,请将消息写入系统控制台。 在没有控制终端的进程中使用此选项是安全的,因为 syslog () 函数在打开控制台之前会派生。
- LOG_NDELAY
- 立即打开与日志记录工具的连接。 通常会延迟打开,直到记录第一条消息。 这对于需要管理文件描述符分配顺序的程序很有用。
- LOG_NOWAIT
- 不要等待已派生的子进程将消息记录到控制台上。 此选项应由使用
SIGCHLD
启用子终止通知的进程使用,因为否则 syslog () 函数可能会阻止等待其退出状态已收集的子代。 - LOG_ODELAY
- 延迟打开,直到调用 syslog ()。
- LOG_PID
- 使用每条消息记录 processID 。 这对于识别特定流程很有用。 在消息头中, processID 由方括号括起。 方括号的代码点值取自代码页 IBM-1047。 左方括号的值为 0xAD。 右方括号的值为 0xBD。
facility 参数对要分配给所有尚未编码显式工具的消息的缺省工具进行编码。 初始缺省工具如下所示:
- LOG_USER
- 由随机进程生成的消息。 这是缺省设施标识 (如果未指定)。
返回值
openlog () 不返回任何值。
未定义任何错误。