STDERR log writer. Writes out messages to STDERR.
Class declared in SYSPATH/classes/Log/StdErr.php on line 3.
int
$strace_levellink to thisLevel to use for stack traces
integer 7
string
$timestamplink to thistimestamp format for log entries.
Defaults to Date::$timestamp_format
NULL
string
$timezonelink to thistimezone for log entries
Defaults to Date::$timezone, which defaults to date_default_timezone_get()
NULL
array
$_log_levelslink to thisNumeric 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 STDERR.
$writer
->write(
$messages
);
array
$messages
required - $messages void
public
function
write(
array
$messages
)
{
foreach
(
$messages
as
$message
) {
// Writes out each message
fwrite(STDERR,
$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
;
}