upgraded dependencies
This commit is contained in:
@@ -20,7 +20,7 @@ use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
|
||||
/**
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @final since Symfony 4.4
|
||||
* @final
|
||||
*/
|
||||
class LoggerDataCollector extends DataCollector implements LateDataCollectorInterface
|
||||
{
|
||||
@@ -28,8 +28,9 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
private $containerPathPrefix;
|
||||
private $currentRequest;
|
||||
private $requestStack;
|
||||
private $processedLogs;
|
||||
|
||||
public function __construct($logger = null, string $containerPathPrefix = null, RequestStack $requestStack = null)
|
||||
public function __construct(object $logger = null, string $containerPathPrefix = null, RequestStack $requestStack = null)
|
||||
{
|
||||
if (null !== $logger && $logger instanceof DebugLoggerInterface) {
|
||||
$this->logger = $logger;
|
||||
@@ -41,12 +42,10 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @param \Throwable|null $exception
|
||||
*/
|
||||
public function collect(Request $request, Response $response/* , \Throwable $exception = null */)
|
||||
public function collect(Request $request, Response $response, \Throwable $exception = null)
|
||||
{
|
||||
$this->currentRequest = $this->requestStack && $this->requestStack->getMasterRequest() !== $request ? $request : null;
|
||||
$this->currentRequest = $this->requestStack && $this->requestStack->getMainRequest() !== $request ? $request : null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,6 +81,82 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
return $this->data['logs'] ?? [];
|
||||
}
|
||||
|
||||
public function getProcessedLogs()
|
||||
{
|
||||
if (null !== $this->processedLogs) {
|
||||
return $this->processedLogs;
|
||||
}
|
||||
|
||||
$rawLogs = $this->getLogs();
|
||||
if ([] === $rawLogs) {
|
||||
return $this->processedLogs = $rawLogs;
|
||||
}
|
||||
|
||||
$logs = [];
|
||||
foreach ($this->getLogs()->getValue() as $rawLog) {
|
||||
$rawLogData = $rawLog->getValue();
|
||||
|
||||
if ($rawLogData['priority']->getValue() > 300) {
|
||||
$logType = 'error';
|
||||
} elseif (isset($rawLogData['scream']) && false === $rawLogData['scream']->getValue()) {
|
||||
$logType = 'deprecation';
|
||||
} elseif (isset($rawLogData['scream']) && true === $rawLogData['scream']->getValue()) {
|
||||
$logType = 'silenced';
|
||||
} else {
|
||||
$logType = 'regular';
|
||||
}
|
||||
|
||||
$logs[] = [
|
||||
'type' => $logType,
|
||||
'errorCount' => $rawLog['errorCount'] ?? 1,
|
||||
'timestamp' => $rawLogData['timestamp_rfc3339']->getValue(),
|
||||
'priority' => $rawLogData['priority']->getValue(),
|
||||
'priorityName' => $rawLogData['priorityName']->getValue(),
|
||||
'channel' => $rawLogData['channel']->getValue(),
|
||||
'message' => $rawLogData['message'],
|
||||
'context' => $rawLogData['context'],
|
||||
];
|
||||
}
|
||||
|
||||
// sort logs from oldest to newest
|
||||
usort($logs, static function ($logA, $logB) {
|
||||
return $logA['timestamp'] <=> $logB['timestamp'];
|
||||
});
|
||||
|
||||
return $this->processedLogs = $logs;
|
||||
}
|
||||
|
||||
public function getFilters()
|
||||
{
|
||||
$filters = [
|
||||
'channel' => [],
|
||||
'priority' => [
|
||||
'Debug' => 100,
|
||||
'Info' => 200,
|
||||
'Notice' => 250,
|
||||
'Warning' => 300,
|
||||
'Error' => 400,
|
||||
'Critical' => 500,
|
||||
'Alert' => 550,
|
||||
'Emergency' => 600,
|
||||
],
|
||||
];
|
||||
|
||||
$allChannels = [];
|
||||
foreach ($this->getProcessedLogs() as $log) {
|
||||
if ('' === trim($log['channel'] ?? '')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$allChannels[] = $log['channel'];
|
||||
}
|
||||
$channels = array_unique($allChannels);
|
||||
sort($channels);
|
||||
$filters['channel'] = $channels;
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
public function getPriorities()
|
||||
{
|
||||
return $this->data['priorities'] ?? [];
|
||||
@@ -115,14 +190,14 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
public function getName(): string
|
||||
{
|
||||
return 'logger';
|
||||
}
|
||||
|
||||
private function getContainerDeprecationLogs(): array
|
||||
{
|
||||
if (null === $this->containerPathPrefix || !file_exists($file = $this->containerPathPrefix.'Deprecations.log')) {
|
||||
if (null === $this->containerPathPrefix || !is_file($file = $this->containerPathPrefix.'Deprecations.log')) {
|
||||
return [];
|
||||
}
|
||||
|
||||
@@ -135,6 +210,7 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
foreach (unserialize($logContent) as $log) {
|
||||
$log['context'] = ['exception' => new SilencedErrorContext($log['type'], $log['file'], $log['line'], $log['trace'], $log['count'])];
|
||||
$log['timestamp'] = $bootTime;
|
||||
$log['timestamp_rfc3339'] = (new \DateTimeImmutable())->setTimestamp($bootTime)->format(\DateTimeInterface::RFC3339_EXTENDED);
|
||||
$log['priority'] = 100;
|
||||
$log['priorityName'] = 'DEBUG';
|
||||
$log['channel'] = null;
|
||||
@@ -148,7 +224,7 @@ class LoggerDataCollector extends DataCollector implements LateDataCollectorInte
|
||||
|
||||
private function getContainerCompilerLogs(string $compilerLogsFilepath = null): array
|
||||
{
|
||||
if (!file_exists($compilerLogsFilepath)) {
|
||||
if (!is_file($compilerLogsFilepath)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user