Gergő Tisza has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/323446

Change subject: Improve logging of exceptions which are not thrown but attached 
to context
......................................................................

Improve logging of exceptions which are not thrown but attached to context

Bug: T151290
Change-Id: I9cc9f54c2987cf960343b5eca2a1c6d006b892bf
---
M autoload.php
M includes/debug/logger/monolog/LogstashFormatter.php
2 files changed, 28 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/46/323446/1

diff --git a/autoload.php b/autoload.php
index 30ef985..f0bbe92 100644
--- a/autoload.php
+++ b/autoload.php
@@ -875,6 +875,7 @@
        'MediaWiki\\Logger\\Monolog\\LegacyFormatter' => __DIR__ . 
'/includes/debug/logger/monolog/LegacyFormatter.php',
        'MediaWiki\\Logger\\Monolog\\LegacyHandler' => __DIR__ . 
'/includes/debug/logger/monolog/LegacyHandler.php',
        'MediaWiki\\Logger\\Monolog\\LineFormatter' => __DIR__ . 
'/includes/debug/logger/monolog/LineFormatter.php',
+       'MediaWiki\\Logger\\Monolog\\LogstashFormatter' => __DIR__ . 
'/includes/debug/logger/monolog/LogstashFormatter.php',
        'MediaWiki\\Logger\\Monolog\\SyslogHandler' => __DIR__ . 
'/includes/debug/logger/monolog/SyslogHandler.php',
        'MediaWiki\\Logger\\Monolog\\WikiProcessor' => __DIR__ . 
'/includes/debug/logger/monolog/WikiProcessor.php',
        'MediaWiki\\Logger\\NullSpi' => __DIR__ . 
'/includes/debug/logger/NullSpi.php',
diff --git a/includes/debug/logger/monolog/LogstashFormatter.php 
b/includes/debug/logger/monolog/LogstashFormatter.php
index 8d37037..77ab771 100644
--- a/includes/debug/logger/monolog/LogstashFormatter.php
+++ b/includes/debug/logger/monolog/LogstashFormatter.php
@@ -69,4 +69,31 @@
                        $message[$key] = $val;
                }
        }
+
+       /**
+        * Use a more user-friendly trace format than NormalizerFormatter
+        * @param \Exception|\Throwable $e
+        * @return array
+        */
+       protected function normalizeException( $e ) {
+               if ( !$e instanceof \Exception && !$e instanceof \Throwable ) {
+                       throw new \InvalidArgumentException( 
'Exception/Throwable expected, got '
+                               . gettype( $e ) . ' / ' . get_class( $e ) );
+               }
+
+               $data = [
+                       'id' => \WebRequest::getRequestId(),
+                       'class' => get_class( $e ),
+                       'message' => $e->getMessage(),
+                       'code' => $e->getCode(),
+                       'file' => $e->getFile() . ':' . $e->getLine(),
+                       'trace' => 
\MWExceptionHandler::getRedactedTraceAsString( $e ),
+               ];
+
+               if ( $previous = $e->getPrevious() ) {
+                       $data['previous'] = $this->normalizeException( 
$previous );
+               }
+
+               return $data;
+       }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/323446
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9cc9f54c2987cf960343b5eca2a1c6d006b892bf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: GergÅ‘ Tisza <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to