PHP 网络函数

PHP openlog() 函数用于打开与系统记录器的连接。 openlog() 的使用是可选的。如果需要,它会自动被 syslog() 调用,在这种情况下前缀将默认为 false。

语法

openlog(prefix, flags, facility) 

参数

prefix必需。 指定添加到每条消息的字符串前缀
flags必填。 指定生成日志消息时将使用哪些日志记录选项。可能的值有:
  • LOG_CONS - 如果向系统记录器发送数据时出现错误,则直接写入系统控制台
  • LOG_NDELAY - 立即打开与记录器的连接
  • LOG_ODELAY -(默认)延迟打开连接,直到记录第一条消息
  • LOG_PERROR - 也将日志消息打印到标准错误
  • LOG_PID - 在每条消息中包含 PID
这些选项中的一个或多个可以是用过的。对于多个选项,使用 OR (|)。例如 - 要立即打开连接、写入控制台并在每条消息中包含 PID,标志将为: LOG_CONS | LOG_NDELAY | LOG_PID
facility必需。 指定记录消息的程序类型。这允许指定如何处理来自不同设施的消息。可能的值有:
  • 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,失败时返回 false。

示例:

下面的示例显示了 openlog 的用法() 函数。

<?php
//打开syslog,包含进程ID并发送日志
//到标准错误,并使用用户定义的日志机制
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

//代码行
if (authorized_client()) {
  //代码行
} else {
  //未经授权的客户端! - 尝试记录
  $access = date("Y/m/d H:i:s");
  syslog(LOG_WARNING, 
         "Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

//关闭系统记录器
closelog();
?>