openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlog打开与系统日志记录器的连接

描述

openlog(string $prefix, int $flags, int $facility): true

openlog() 为程序打开与系统日志记录器的连接。

使用 openlog() 是可选的。如果需要,它将被 syslog() 自动调用,在这种情况下,prefix 将默认为 false

参数

prefix

字符串 prefix 将添加到每条消息中。

flags

flags 参数用于指示在生成日志消息时将使用哪些日志记录选项。

openlog() 选项
常量 描述
LOG_CONS 如果向系统日志记录器发送数据时出现错误,则直接写入系统控制台
LOG_NDELAY 立即打开与日志记录器的连接
LOG_ODELAY (默认) 延迟打开连接,直到记录第一条消息
LOG_PERROR 将日志消息也打印到标准错误
LOG_PID 在每条消息中包含 PID
您可以使用其中一个或多个选项。当使用多个选项时,您需要 OR 它们,例如,要立即打开连接、写入控制台并在每条消息中包含 PID,您将使用:LOG_CONS | LOG_NDELAY | LOG_PID

facility

facility 参数用于指定正在记录消息的程序类型。这使您能够指定(在您的机器的 syslog 配置中)如何处理来自不同设施的消息。

openlog() 设施
常量 描述
LOG_AUTH 安全/授权消息(在定义了该常量的系统中,请使用 LOG_AUTHPRIV 代替)
LOG_AUTHPRIV 安全/授权消息(私有)
LOG_CRON 时钟守护程序(cron 和 at)
LOG_DAEMON 其他系统守护程序
LOG_KERN 内核消息
LOG_LOCAL0 ... LOG_LOCAL7 保留供本地使用,这些在 Windows 中不可用
LOG_LPR 行式打印机子系统
LOG_MAIL 邮件子系统
LOG_NEWS USENET 新闻子系统
LOG_SYSLOG syslogd 内部生成的邮件
LOG_USER 通用用户级消息
LOG_UUCP UUCP 子系统

注意:

LOG_USER 是 Windows 操作系统下唯一有效的日志类型

返回值

始终返回 true

变更日志

版本 描述
8.2.0 该函数现在始终返回 true。以前它在失败时返回 false

参见

  • syslog() - 生成系统日志消息
  • closelog() - 关闭与系统日志记录器的连接

添加注释

用户贡献的注释 2 个注释

2
Nimja
11 年前
对于那些好奇的人来说;在不同的设施之间切换不是问题。通过多次(12 * 10000)调用 openlog,没有明显的内存开销(或减速)。

此示例说明了这一点

<?php
$facilities
= array(
LOG_AUTH,
LOG_AUTHPRIV,
LOG_CRON,
LOG_DAEMON,
LOG_KERN,
LOG_LOCAL0,
LOG_LPR,
LOG_MAIL,
LOG_NEWS,
LOG_SYSLOG,
LOG_USER,
LOG_UUCP,
);

for (
$i = 0; $i < 10000; $i++) {
foreach (
$facilities as $facility) {
openlog('test', LOG_PID, $facility);
syslog(LOG_ERR, "This is a test: " . memory_get_usage(true));
}
}
?>
0
sam dot wankaner at gmail dot com
9 年前
在第二个参数 int $option 中,PI 代表进程 ID (PID)。
这是分配给该进程的唯一编号。例如 [30326]
To Top