©
This document uses PHP Chinese website manual Release
(PHP 4, PHP 5)
openlog — Open connection to system logger
$ident
, int $option
, int $facility
)openlog() opens a connection to the system logger for a program.
The use of openlog() is optional. It
will automatically be called by syslog() if
necessary, in which case ident
will default
to FALSE
.
ident
The string ident
is added to each message.
option
The option
argument is used to indicate
what logging options will be used when generating a log message.
Constant | Description |
---|---|
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console |
LOG_NDELAY | open the connection to the logger immediately |
LOG_ODELAY | (default) delay opening the connection until the first message is logged |
LOG_PERROR | print log message also to standard error |
LOG_PID | include PID with each message |
facility
The facility
argument 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.
Constant | Description |
---|---|
LOG_AUTH |
security/authorization messages (use
LOG_AUTHPRIV instead
in systems where that constant is defined)
|
LOG_AUTHPRIV | security/authorization messages (private) |
LOG_CRON | clock daemon (cron and at) |
LOG_DAEMON | other system daemons |
LOG_KERN | kernel messages |
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows |
LOG_LPR | line printer subsystem |
LOG_MAIL | mail subsystem |
LOG_NEWS | USENET news subsystem |
LOG_SYSLOG | messages generated internally by syslogd |
LOG_USER | generic user-level messages |
LOG_UUCP | UUCP subsystem |
Note:
LOG_USER
is the only valid log type under Windows operating systems
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
[#1] sam dot wankaner at gmail dot com [2015-01-20 19:15:40]
In second parameter int $option, PI means Process ID (PID).
That is the unique number given to that process. For eg [30326]
[#2] Nimja [2013-07-30 11:07:35]
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));
}
}
?>