public function format($message, $type, $timestamp, $context = [], $trace = null, $order = 0)
{
$level = $this->getTypeString($type);
if ($message instanceof \Exception) {
$exception = $message;
$message = '';
} elseif (!is_string($message)) {
$richMessage = $message;
$message = '';
}
$item = ['name' => $this->name, 'args' => [], 'level' => $level, 'timestamp' => $timestamp, 'order' => $order, 'time' => gmdate('H:i:s', (int) $timestamp) . '.000', 'template' => $message, 'message' => $message];
if ($this->style) {
$item['style'] = $this->style;
}
if (isset($exception)) {
// exception with backtrace
$traceInfo = $this->extractTrace($exception->getTrace());
$item['exc_info'] = [$exception->getMessage(), $exception->getFile(), $traceInfo[0]];
$item['exc_frames'] = $traceInfo[1];
$item['exc_text'] = get_class($exception);
$item['template'] = $exception->getMessage();
$item['code'] = $exception->getCode();
$item['pathname'] = $exception->getFile();
$item['lineno'] = $exception->getLine();
} else {
// rich log record
$backtrace = debug_backtrace();
list($file, $line) = $this->extractFileLine($backtrace);
$item['pathname'] = $file;
$item['lineno'] = $line;
if (isset($trace)) {
$traceInfo = $this->extractTrace($trace);
$item['exc_info'] = ['', '', $traceInfo[0]];
$item['exc_frames'] = $traceInfo[1];
}
if (isset($richMessage)) {
$item['args'] = [$richMessage];
}
}
return $this->pickle($item);
}