Merge pull request #29962 from nextcloud/backport/29951/stable22

This commit is contained in:
John Molakvoæ 2022-01-07 08:42:04 +01:00 committed by GitHub
commit 6117316ce6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -43,6 +43,7 @@ use OCP\ILogger;
use OCP\Log\IFileBased;
use OCP\Log\IWriter;
use OCP\Support\CrashReport\IRegistry;
use function strtr;
/**
* logging utilities
@ -206,13 +207,7 @@ class Log implements ILogger, IDataLogger {
array_walk($context, [$this->normalizer, 'format']);
$app = $context['app'] ?? 'no app in context';
// interpolate $message as defined in PSR-3
$replace = [];
foreach ($context as $key => $val) {
$replace['{' . $key . '}'] = $val;
}
$message = strtr($message, $replace);
$message = $this->interpolateMessage($context, $message);
try {
if ($level >= $minLevel) {
@ -315,7 +310,7 @@ class Log implements ILogger, IDataLogger {
$serializer = new ExceptionSerializer($this->config);
$data = $serializer->serializeException($exception);
$data['CustomMessage'] = $context['message'] ?? '--';
$data['CustomMessage'] = $this->interpolateMessage($context, $context['message'] ?? '--');
$minLevel = $this->getLogLevel($context);
@ -376,4 +371,20 @@ class Log implements ILogger, IDataLogger {
}
throw new \RuntimeException('Log implementation has no path');
}
/**
* Interpolate $message as defined in PSR-3
*
* @param array $context
* @param string $message
*
* @return string
*/
private function interpolateMessage(array $context, string $message): string {
$replace = [];
foreach ($context as $key => $val) {
$replace['{' . $key . '}'] = $val;
}
return strtr($message, $replace);
}
}