STDOUT log writer. Writes out messages to STDOUT.
Class declared in SYSPATH/classes/Log/StdOut.php on line 3.
int
$strace_levelLevel to use for stack traces
integer 7
string
$timestamptimestamp format for log entries.
Defaults to Date::$timestamp_format
NULL
string
$timezonetimezone for log entries
Defaults to Date::$timezone, which defaults to date_default_timezone_get()
NULL
array
$_log_levelsNumeric log level to string lookup table.
array(8) ( 0 => string(9) "EMERGENCY" 1 => string(5) "ALERT" 2 => string(8) "CRITICAL" 3 => string(5) "ERROR" 4 => string(7) "WARNING" 5 => string(6) "NOTICE" 6 => string(4) "INFO" 7 => string(5) "DEBUG" )
Writes each of the messages to STDOUT.
$writer->write($messages);
array
$messages
required - $messages void
public function write(array $messages)
{
foreach ($messages as $message) {
// Writes out each message
fwrite(STDOUT, $this->format_message($message) . PHP_EOL);
}
}
Allows the writer to have a unique key when stored.
echo $writer;
string
final public function __toString()
{
return spl_object_hash($this);
}
Formats a log entry.
array
$message
required - $message string
$format
= string(33) "time --- level: body in file:line" - $format string
public function format_message(array $message, $format = "time --- level: body in file:line")
{
$message['time'] = Date::formatted_time('@' . $message['time'], Log_Writer::$timestamp, Log_Writer::$timezone, true);
$message['level'] = $this->_log_levels[$message['level']];
$string = strtr($format, array_filter($message, 'is_scalar'));
if (isset($message['additional']['exception'])) {
// Re-use as much as possible, just resetting the body to the trace
$message['body'] = $message['additional']['exception']->getTraceAsString();
$message['level'] = $this->_log_levels[Log_Writer::$strace_level];
$string .= PHP_EOL . strtr($format, array_filter($message, 'is_scalar'));
}
return $string;
}