ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
Log_daemon Class Reference
+ Inheritance diagram for Log_daemon:
+ Collaboration diagram for Log_daemon:

Public Member Functions

 Log_daemon ($name, $ident='', $conf=array(), $level=PEAR_LOG_DEBUG)
 Constructs a new syslog object. More...
 
 _Log_daemon ()
 Destructor. More...
 
 open ()
 Opens a connection to the system logger, if it has not already been opened. More...
 
 close ()
 Closes the connection to the system logger, if it is open. More...
 
 log ($message, $priority=null)
 Sends $message to the currently open syslog connection. More...
 
 _toSyslog ($priority)
 Converts a PEAR_LOG_* constant into a syslog LOG_* constant. More...
 
- Public Member Functions inherited from Log
 _classExists ($class)
 Utility function which wraps PHP's class_exists() function to ensure consistent behavior between PHP versions 4 and 5. More...
 
factory ($handler, $name='', $ident='', $conf=array(), $level=PEAR_LOG_DEBUG)
 Attempts to return a concrete Log instance of type $handler. More...
 
singleton ($handler, $name='', $ident='', $conf=array(), $level=PEAR_LOG_DEBUG)
 Attempts to return a reference to a concrete Log instance of type $handler, only creating a new instance if no log instance with the same parameters currently exists. More...
 
 open ()
 Abstract implementation of the open() method. More...
 
 close ()
 Abstract implementation of the close() method. More...
 
 flush ()
 Abstract implementation of the flush() method. More...
 
 log ($message, $priority=null)
 Abstract implementation of the log() method. More...
 
 emerg ($message)
 A convenience function for logging a emergency event. More...
 
 alert ($message)
 A convenience function for logging an alert event. More...
 
 crit ($message)
 A convenience function for logging a critical event. More...
 
 err ($message)
 A convenience function for logging a error event. More...
 
 warning ($message)
 A convenience function for logging a warning event. More...
 
 notice ($message)
 A convenience function for logging a notice event. More...
 
 info ($message)
 A convenience function for logging a information event. More...
 
 debug ($message)
 A convenience function for logging a debug event. More...
 
 _extractMessage ($message)
 Returns the string representation of the message data. More...
 
 _getBacktraceVars ($depth)
 Using debug_backtrace(), returns the file, line, and enclosing function name of the source code context from which log() was invoked. More...
 
 _format ($format, $timestamp, $priority, $message)
 Produces a formatted log line based on a format string and a set of variables representing the current log record and state. More...
 
 priorityToString ($priority)
 Returns the string representation of a PEAR_LOG_* integer constant. More...
 
 stringToPriority ($name)
 Returns the the PEAR_LOG_* integer constant for the given string representation of a priority name. More...
 
 MASK ($priority)
 Calculate the log mask for the given priority. More...
 
 UPTO ($priority)
 Calculate the log mask for all priorities up to the given priority. More...
 
 MIN ($priority)
 Calculate the log mask for all priorities greater than or equal to the given priority. More...
 
 MAX ($priority)
 Calculate the log mask for all priorities less than or equal to the given priority. More...
 
 setMask ($mask)
 Set and return the level mask for the current Log instance. More...
 
 getMask ()
 Returns the current level mask. More...
 
 _isMasked ($priority)
 Check if the given priority is included in the current level mask. More...
 
 getPriority ()
 Returns the current default priority. More...
 
 setPriority ($priority)
 Sets the default priority to the specified value. More...
 
 attach (&$observer)
 Adds a Log_observer instance to the list of observers that are listening for messages emitted by this Log instance. More...
 
 detach ($observer)
 Removes a Log_observer instance from the list of observers. More...
 
 _announce ($event)
 Informs each registered observer instance that a new message has been logged. More...
 
 isComposite ()
 Indicates whether this is a composite class. More...
 
 setIdent ($ident)
 Sets this Log instance's identification string. More...
 
 getIdent ()
 Returns the current identification string. More...
 

Data Fields

 $_name = LOG_DAEMON
 
 $_socket
 
 $_ip = '127.0.0.1'
 
 $_proto = 'udp'
 
 $_port = 514
 
 $_maxsize = 4096
 
 $_timeout = 1
 
- Data Fields inherited from Log
 $_opened = false
 
 $_id = 0
 
 $_ident = ''
 
 $_priority = PEAR_LOG_INFO
 
 $_mask = PEAR_LOG_ALL
 
 $_listeners = array()
 
 $_formatMap
 

Detailed Description

Definition at line 18 of file daemon.php.

Member Function Documentation

◆ _Log_daemon()

Log_daemon::_Log_daemon ( )

Destructor.

@access private

Definition at line 112 of file daemon.php.

113 {
114 $this->close();
115 }
close()
Closes the connection to the system logger, if it is open.
Definition: daemon.php:139

References close().

+ Here is the call graph for this function:

◆ _toSyslog()

Log_daemon::_toSyslog (   $priority)

Converts a PEAR_LOG_* constant into a syslog LOG_* constant.

This function exists because, under Windows, not all of the LOG_* constants have unique values. Instead, the PEAR_LOG_* were introduced for global use, with the conversion to the LOG_* constants kept local to to the syslog driver.

Parameters
int$priorityPEAR_LOG_* value to convert to LOG_* value.
Returns
The LOG_* representation of $priority.

@access private

Definition at line 214 of file daemon.php.

215 {
216 static $priorities = array(
217 PEAR_LOG_EMERG => LOG_EMERG,
218 PEAR_LOG_ALERT => LOG_ALERT,
219 PEAR_LOG_CRIT => LOG_CRIT,
220 PEAR_LOG_ERR => LOG_ERR,
221 PEAR_LOG_WARNING => LOG_WARNING,
222 PEAR_LOG_NOTICE => LOG_NOTICE,
223 PEAR_LOG_INFO => LOG_INFO,
224 PEAR_LOG_DEBUG => LOG_DEBUG
225 );
226
227 /* If we're passed an unknown priority, default to LOG_INFO. */
228 if (!is_int($priority) || !in_array($priority, $priorities)) {
229 return LOG_INFO;
230 }
231
232 return $priorities[$priority];
233 }
const PEAR_LOG_ALERT
Definition: Log.php:11
const PEAR_LOG_EMERG
Definition: Log.php:10
const PEAR_LOG_ERR
Definition: Log.php:13
const PEAR_LOG_CRIT
Definition: Log.php:12
const PEAR_LOG_DEBUG
Definition: Log.php:17
const PEAR_LOG_INFO
Definition: Log.php:16
const PEAR_LOG_WARNING
Definition: Log.php:14
const PEAR_LOG_NOTICE
Definition: Log.php:15

References PEAR_LOG_ALERT, PEAR_LOG_CRIT, PEAR_LOG_DEBUG, PEAR_LOG_EMERG, PEAR_LOG_ERR, PEAR_LOG_INFO, PEAR_LOG_NOTICE, and PEAR_LOG_WARNING.

Referenced by log().

+ Here is the caller graph for this function:

◆ close()

Log_daemon::close ( )

Closes the connection to the system logger, if it is open.

@access public

Reimplemented from Log.

Definition at line 139 of file daemon.php.

140 {
141 if ($this->_opened) {
142 $this->_opened = false;
143 return fclose($this->_socket);
144 }
145 return true;
146 }

Referenced by _Log_daemon().

+ Here is the caller graph for this function:

◆ log()

Log_daemon::log (   $message,
  $priority = null 
)

Sends $message to the currently open syslog connection.

Calls open() if necessary. Also passes the message along to any Log_observer instances that are observing this Log.

Parameters
string$messageThe textual message to be logged.
int$priority(optional) The priority of the message. Valid values are: LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR, LOG_WARNING, LOG_NOTICE, LOG_INFO, and LOG_DEBUG. The default is LOG_INFO. @access public

Reimplemented from Log.

Definition at line 160 of file daemon.php.

161 {
162 /* If a priority hasn't been specified, use the default value. */
163 if ($priority === null) {
164 $priority = $this->_priority;
165 }
166
167 /* Abort early if the priority is above the maximum logging level. */
168 if (!$this->_isMasked($priority)) {
169 return false;
170 }
171
172 /* If the connection isn't open and can't be opened, return failure. */
173 if (!$this->_opened && !$this->open()) {
174 return false;
175 }
176
177 /* Extract the string representation of the message. */
178 $message = $this->_extractMessage($message);
179
180 /* Set the facility level. */
181 $facility_level = intval($this->_name) +
182 intval($this->_toSyslog($priority));
183
184 /* Prepend ident info. */
185 if (!empty($this->_ident)) {
186 $message = $this->_ident . ' ' . $message;
187 }
188
189 /* Check for message length. */
190 if (strlen($message) > $this->_maxsize) {
191 $message = substr($message, 0, ($this->_maxsize) - 10) . ' [...]';
192 }
193
194 /* Write to socket. */
195 fwrite($this->_socket, '<' . $facility_level . '>' . $message . "\n");
196
197 $this->_announce(array('priority' => $priority, 'message' => $message));
198 }
open()
Opens a connection to the system logger, if it has not already been opened.
Definition: daemon.php:122
_toSyslog($priority)
Converts a PEAR_LOG_* constant into a syslog LOG_* constant.
Definition: daemon.php:214
$_priority
Definition: Log.php:69
_isMasked($priority)
Check if the given priority is included in the current level mask.
Definition: Log.php:726
_announce($event)
Informs each registered observer instance that a new message has been logged.
Definition: Log.php:811
_extractMessage($message)
Returns the string representation of the message data.
Definition: Log.php:417

References Log\$_priority, Log\_announce(), Log\_extractMessage(), Log\_isMasked(), _toSyslog(), and open().

+ Here is the call graph for this function:

◆ Log_daemon()

Log_daemon::Log_daemon (   $name,
  $ident = '',
  $conf = array(),
  $level = PEAR_LOG_DEBUG 
)

Constructs a new syslog object.

Parameters
string$nameThe syslog facility.
string$identThe identity string.
array$confThe configuration array.
int$maxLevelMaximum level at which to log. @access public

Definition at line 74 of file daemon.php.

76 {
77 /* Ensure we have a valid integer value for $name. */
78 if (empty($name) || !is_int($name)) {
79 $name = LOG_SYSLOG;
80 }
81
82 $this->_id = md5(microtime());
83 $this->_name = $name;
84 $this->_ident = $ident;
85 $this->_mask = Log::UPTO($level);
86
87 if (isset($conf['ip'])) {
88 $this->_ip = $conf['ip'];
89 }
90 if (isset($conf['proto'])) {
91 $this->_proto = $conf['proto'];
92 }
93 if (isset($conf['port'])) {
94 $this->_port = $conf['port'];
95 }
96 if (isset($conf['maxsize'])) {
97 $this->_maxsize = $conf['maxsize'];
98 }
99 if (isset($conf['timeout'])) {
100 $this->_timeout = $conf['timeout'];
101 }
102 $this->_proto = $this->_proto . '://';
103
104 register_shutdown_function(array(&$this, '_Log_daemon'));
105 }
UPTO($priority)
Calculate the log mask for all priorities up to the given priority.
Definition: Log.php:642

References Log\UPTO().

+ Here is the call graph for this function:

◆ open()

Log_daemon::open ( )

Opens a connection to the system logger, if it has not already been opened.

This is implicitly called by log(), if necessary. @access public

Reimplemented from Log.

Definition at line 122 of file daemon.php.

123 {
124 if (!$this->_opened) {
125 $this->_opened = (bool)($this->_socket = @fsockopen(
126 $this->_proto . $this->_ip,
127 $this->_port,
128 $errno,
129 $errstr,
130 $this->_timeout));
131 }
132 return $this->_opened;
133 }
$_opened
Definition: Log.php:45

References Log\$_opened.

Referenced by log().

+ Here is the caller graph for this function:

Field Documentation

◆ $_ip

Log_daemon::$_ip = '127.0.0.1'

Definition at line 37 of file daemon.php.

◆ $_maxsize

Log_daemon::$_maxsize = 4096

Definition at line 56 of file daemon.php.

◆ $_name

Log_daemon::$_name = LOG_DAEMON

Definition at line 24 of file daemon.php.

◆ $_port

Log_daemon::$_port = 514

Definition at line 50 of file daemon.php.

◆ $_proto

Log_daemon::$_proto = 'udp'

Definition at line 44 of file daemon.php.

◆ $_socket

Log_daemon::$_socket

Definition at line 30 of file daemon.php.

◆ $_timeout

Log_daemon::$_timeout = 1

Definition at line 62 of file daemon.php.


The documentation for this class was generated from the following file: