PHP Function Reference

PHP openlog() Function



The PHP openlog() function opens the connection to system logger. The use of openlog() is optional. It will automatically be called by syslog() if necessary, in that case prefix will default to false.

Syntax

openlog(prefix, flags, facility)

Parameters

prefix Required. Specify the string prefix is added to each message.
flags Required. Specify what logging options will be used when generating a log message. Possible values are:
  • 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
one or more of these options can be used. For multiple options OR (|) is used. For example - to open the connection immediately, write to the console and include the PID in each message, the flags will be: LOG_CONS | LOG_NDELAY | LOG_PID
facility Required. Specify what type of program is logging the message. This allows to specify how messages coming from different facilities will be handled. Possible values are:
  • 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

Return Value

Returns true on success or false on failure.

Example:

The example below shows the usage of openlog() function.

<?php
//open syslog, include the process ID and also send the log 
//to standard error, and use a user defined logging mechanism
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

//code lines

if (authorized_client()) {
  //code lines
} else {
  //unauthorized client! - attempt to log
  $access = date("Y/m/d H:i:s");
  syslog(LOG_WARNING, 
         "Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

//closing the system logger
closelog();
?>

❮ PHP Network Reference