PHP 8.4.0 RC2 available for testing

openlog

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

openlogOpen connection to system logger

说明

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

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 prefix will default to false.

参数

prefix

The string prefix is added to each message.

flags

The flags argument is used to indicate what logging options will be used when generating a log message.

openlog() Options
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
You can use one or more of these options. When using multiple options you need to OR them, 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_PID

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.

openlog() Facilities
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

注意:

LOG_USER is the only valid log type under Windows operating systems

返回值

总是返回 true

更新日志

版本 说明
8.2.0 The function now always returns true. Previously it returned false on failure.

参见

添加备注

用户贡献的备注 2 notes

up
2
Nimja
11 years ago
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));
}
}
?>
up
0
sam dot wankaner at gmail dot com
9 years ago
In second parameter int $option, PI means Process ID (PID).
That is the unique number given to that process. For eg [30326]
To Top