aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChristoph Wurst <ChristophWurst@users.noreply.github.com>2021-11-29 16:43:40 +0100
committerGitHub <noreply@github.com>2021-11-29 16:43:40 +0100
commitc9a1937eb94cba5fd1aad0888faebaf47f04dc3d (patch)
treeccff608b48778050e6e9e35995ccdeb3e461c24a /lib
parent6fe5079e79f4556975169d991f3f53000ccef6d7 (diff)
parent311b3ffa2e8966df883d738f2a741f139ed914da (diff)
downloadnextcloud-server-c9a1937eb94cba5fd1aad0888faebaf47f04dc3d.tar.gz
nextcloud-server-c9a1937eb94cba5fd1aad0888faebaf47f04dc3d.zip
Merge pull request #29951 from nextcloud/fix/log-interpolation-exceptions
Interpolate the log message also for logged exceptions
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Log.php27
1 files changed, 19 insertions, 8 deletions
diff --git a/lib/private/Log.php b/lib/private/Log.php
index 9c6a1b614c6..edbfdea7b9d 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -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);
+ }
}