LogDataCollector.
@author Fabien Potencier <fabien@symfony.com>
Expanded class hierarchy of LoggerDataCollector
class LoggerDataCollector extends DataCollector {
private $logger;
public function __construct($logger = null) {
if (null !== $logger && $logger instanceof DebugLoggerInterface) {
$this->logger = $logger;
}
}
/**
* {@inheritdoc}
*/
public function collect(Request $request, Response $response, \Exception $exception = null) {
if (null !== $this->logger) {
$this->data = array(
'error_count' => $this->logger
->countErrors(),
'logs' => $this
->sanitizeLogs($this->logger
->getLogs()),
);
}
}
/**
* Gets the called events.
*
* @return array An array of called events
*
* @see TraceableEventDispatcherInterface
*/
public function countErrors() {
return isset($this->data['error_count']) ? $this->data['error_count'] : 0;
}
/**
* Gets the logs.
*
* @return array An array of logs
*/
public function getLogs() {
return isset($this->data['logs']) ? $this->data['logs'] : array();
}
/**
* {@inheritdoc}
*/
public function getName() {
return 'logger';
}
private function sanitizeLogs($logs) {
foreach ($logs as $i => $log) {
$logs[$i]['context'] = $this
->sanitizeContext($log['context']);
}
return $logs;
}
private function sanitizeContext($context) {
if (is_array($context)) {
foreach ($context as $key => $value) {
$context[$key] = $this
->sanitizeContext($value);
}
return $context;
}
if (is_resource($context)) {
return sprintf('Resource(%s)', get_resource_type($context));
}
if (is_object($context)) {
return sprintf('Object(%s)', get_class($context));
}
return $context;
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DataCollector:: |
protected | property | ||
DataCollector:: |
public | function | ||
DataCollector:: |
public | function | ||
LoggerDataCollector:: |
private | property | ||
LoggerDataCollector:: |
public | function |
Collects data for the given Request and Response. Overrides DataCollectorInterface:: |
|
LoggerDataCollector:: |
public | function | Gets the called events. | |
LoggerDataCollector:: |
public | function | Gets the logs. | |
LoggerDataCollector:: |
public | function |
Returns the name of the collector. Overrides DataCollectorInterface:: |
|
LoggerDataCollector:: |
private | function | ||
LoggerDataCollector:: |
private | function | ||
LoggerDataCollector:: |
public | function |