Open connection to system logger


openlog ( string $ident , int $option , int $facility ) : bool



The string ident is added to each message.


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

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


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


Returns TRUE on success or FALSE on failure.



// open syslog, include the process ID and send the log to standard error, and use a user defined logging mechanism

$ident = "myScriptLog";
$option = LOG_PID | LOG_PERROR;
$facility = LOG_LOCAL0;

openlog($ident, $option, $facility);

    if (authorized_client()) {
        // do something
    } else {
        // unauthorized client, log attempt
        $access = date("Y/m/d H:i:s");
        $priority = LOG_WARNING;
        $message = "unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})";
        syslog($priority, $message);









Home Menu