From 2066ce89d03202a438d45f851f6ed44e482f245e Mon Sep 17 00:00:00 2001 From: James Gilliland Date: Fri, 15 May 2020 11:25:01 -0500 Subject: [PATCH] Fix SoapFault detail with nested object Fixes #1431 --- src/Monolog/Formatter/LineFormatter.php | 9 +++++++-- src/Monolog/Formatter/NormalizerFormatter.php | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Monolog/Formatter/LineFormatter.php b/src/Monolog/Formatter/LineFormatter.php index 9fe43193..0c342a54 100644 --- a/src/Monolog/Formatter/LineFormatter.php +++ b/src/Monolog/Formatter/LineFormatter.php @@ -180,8 +180,13 @@ class LineFormatter extends NormalizerFormatter $str .= ' faultactor: ' . $e->faultactor; } - if (isset($e->detail) && (is_string($e->detail) || is_object($e->detail) || is_array($e->detail))) { - $str .= ' detail: ' . (is_string($e->detail) ? $e->detail : reset($e->detail)); + if (isset($e->detail)) { + if (is_string($e->detail)) { + $str .= ' detail: ' . $e->detail; + } + elseif (is_object($e->detail) || is_array($e->detail)) { + $str .= ' detail: ' . Utils::jsonEncode($e->detail); + } } } $str .= '): ' . $e->getMessage() . ' at ' . $e->getFile() . ':' . $e->getLine() . ')'; diff --git a/src/Monolog/Formatter/NormalizerFormatter.php b/src/Monolog/Formatter/NormalizerFormatter.php index eb071329..7368ce04 100644 --- a/src/Monolog/Formatter/NormalizerFormatter.php +++ b/src/Monolog/Formatter/NormalizerFormatter.php @@ -202,8 +202,13 @@ class NormalizerFormatter implements FormatterInterface $data['faultactor'] = $e->faultactor; } - if (isset($e->detail) && (is_string($e->detail) || is_object($e->detail) || is_array($e->detail))) { - $data['detail'] = is_string($e->detail) ? $e->detail : reset($e->detail); + if (isset($e->detail)) { + if (is_string($e->detail)) { + $data['detail'] = $e->detail; + } + elseif (is_object($e->detail) || is_array($e->detail)) { + $data['detail'] = Utils::jsonEncode($e->detail); + } } }