<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Zend\Log\Formatter;
use DateTime;
class ExceptionHandler implements FormatterInterface
{
/**
* Format specifier for DateTime objects in event data
*
* @see http://php.net/manual/en/function.date.php
* @var string
*/
protected $dateTimeFormat = self::DEFAULT_DATETIME_FORMAT;
/**
* This method formats the event for the PHP Exception
*
* @param array $event
* @return string
*/
public function format($event)
{
if (isset($event['timestamp']) && $event['timestamp'] instanceof DateTime) {
$event['timestamp'] = $event['timestamp']->format($this->getDateTimeFormat());
}
$output = $event['timestamp'] . ' ' . $event['priorityName'] . ' ('
. $event['priority'] . ') ' . $event['message'] .' in '
. $event['extra']['file'] . ' on line ' . $event['extra']['line'];
if (!empty($event['extra']['trace'])) {
$outputTrace = '';
foreach ($event['extra']['trace'] as $trace) {
$outputTrace .= "File : {$trace['file']}\n"
. "Line : {$trace['line']}\n"
. "Func : {$trace['function']}\n"
. "Class : {$trace['class']}\n"
. "Type : " . $this->getType($trace['type']) . "\n"
. "Args : " . print_r($trace['args'], true) . "\n";
}
$output .= "\n[Trace]\n" . $outputTrace;
}
return $output;
}
/**
* {@inheritDoc}
*/
public function getDateTimeFormat()
{
return $this->dateTimeFormat;
}
/**
* {@inheritDoc}
*/
public function setDateTimeFormat($dateTimeFormat)
{
$this->dateTimeFormat = (string) $dateTimeFormat;
return $this;
}
/**
* Get the type of a function
*
* @param string $type
* @return string
*/
protected function getType($type)
{
switch ($type) {
case "::" :
return "static";
case "->" :
return "method";
default :
return $type;
}
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
|
|