openlog()
(PHP 4, PHP 5, PHP 7)
Open connection to system logger
说明
openlog(string $ident,int $option,int $facility): bool
openlog()opens a connection to the system logger for a program.
The use ofopenlog()is optional. It will automatically be called bysyslog()if necessary, in which case$identwill default toFALSE.
参数
- $ident
 The string$identis added to each message.
- $option
 The$optionargument is used to indicate what logging options will be used when generating a log message.
You can use one or more of these options. When using multiple options you need toORthem, i.e. to open the connection immediately, write to the console and include the PID in each message, you will use:LOG_CONS | LOG_NDELAY | LOG_PIDopenlog()Options Constant Description LOG_CONSif there is an error while sending data to the system logger, write directly to the system console LOG_NDELAYopen the connection to the logger immediately LOG_ODELAY(default) delay opening the connection until the first message is logged LOG_PERRORprint log message also to standard error LOG_PIDinclude PID with each message - $facility
 The$facilityargument is used to specify what type of program is logging the message. This allows you to specify (in your machine's syslog configuration) how messages coming from different facilities will be handled.
openlog()Facilities Constant Description LOG_AUTHsecurity/authorization messages (use LOG_AUTHPRIVinstead in systems where that constant is defined)LOG_AUTHPRIVsecurity/authorization messages (private) LOG_CRONclock daemon (cron and at) LOG_DAEMONother system daemons LOG_KERNkernel messages LOG_LOCAL0...LOG_LOCAL7reserved for local use, these are not available in Windows LOG_LPRline printer subsystem LOG_MAILmail subsystem LOG_NEWSUSENET news subsystem LOG_SYSLOGmessages generated internally by syslogd LOG_USERgeneric user-level messages LOG_UUCPUUCP subsystem Note:
LOG_USERis the only valid log type under Windows operating systems
返回值
成功时返回TRUE,或者在失败时返回FALSE。
参见
syslog()Generate a system log messagecloselog()关闭系统日志链接
In second parameter int $option, PI means Process ID (PID). That is the unique number given to that process. For eg [30326]
To those curious; switching between different facilities is NOT an issue. There is no apparent memory overhead (nor slowdown) by calling openlog multiple(12 * 10000) times.
Shown by this example:
<?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));
  }
}
?>
