friendica-addons/monolog/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php

84 lines
2.1 KiB
PHP
Raw Normal View History

2022-10-17 21:25:03 +02:00
<?php declare(strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Formatter;
2023-01-18 00:17:49 +01:00
use Monolog\Logger;
2022-10-17 21:25:03 +02:00
/**
* Formats a log message according to the ChromePHP array format
*
* @author Christophe Coevoet <stof@notk.org>
*/
class ChromePHPFormatter implements FormatterInterface
{
/**
* Translates Monolog log levels to Wildfire levels.
*
2023-01-18 00:17:49 +01:00
* @var array<int, 'log'|'info'|'warn'|'error'>
2022-10-17 21:25:03 +02:00
*/
2023-01-18 00:17:49 +01:00
private $logLevels = [
Logger::DEBUG => 'log',
Logger::INFO => 'info',
Logger::NOTICE => 'info',
Logger::WARNING => 'warn',
Logger::ERROR => 'error',
Logger::CRITICAL => 'error',
Logger::ALERT => 'error',
Logger::EMERGENCY => 'error',
];
2022-10-17 21:25:03 +02:00
/**
2023-01-18 00:17:49 +01:00
* {@inheritDoc}
2022-10-17 21:25:03 +02:00
*/
2023-01-18 00:17:49 +01:00
public function format(array $record)
2022-10-17 21:25:03 +02:00
{
// Retrieve the line and file if set and remove them from the formatted extra
$backtrace = 'unknown';
2023-01-18 00:17:49 +01:00
if (isset($record['extra']['file'], $record['extra']['line'])) {
$backtrace = $record['extra']['file'].' : '.$record['extra']['line'];
unset($record['extra']['file'], $record['extra']['line']);
2022-10-17 21:25:03 +02:00
}
2023-01-18 00:17:49 +01:00
$message = ['message' => $record['message']];
if ($record['context']) {
$message['context'] = $record['context'];
2022-10-17 21:25:03 +02:00
}
2023-01-18 00:17:49 +01:00
if ($record['extra']) {
$message['extra'] = $record['extra'];
2022-10-17 21:25:03 +02:00
}
if (count($message) === 1) {
$message = reset($message);
}
return [
2023-01-18 00:17:49 +01:00
$record['channel'],
2022-10-17 21:25:03 +02:00
$message,
$backtrace,
2023-01-18 00:17:49 +01:00
$this->logLevels[$record['level']],
2022-10-17 21:25:03 +02:00
];
}
/**
2023-01-18 00:17:49 +01:00
* {@inheritDoc}
2022-10-17 21:25:03 +02:00
*/
public function formatBatch(array $records)
{
$formatted = [];
foreach ($records as $record) {
$formatted[] = $this->format($record);
}
return $formatted;
}
}