jenkins-bot has submitted this change and it was merged.

Change subject: Warn when a log context accidentally overrides a log processor
......................................................................


Warn when a log context accidentally overrides a log processor

Bug: T145133
Change-Id: I6677dbf608aac1d7fd6036f5e51977d56ce2fc57
---
M includes/debug/logger/monolog/WikiProcessor.php
1 file changed, 20 insertions(+), 1 deletion(-)

Approvals:
  BryanDavis: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/debug/logger/monolog/WikiProcessor.php 
b/includes/debug/logger/monolog/WikiProcessor.php
index ad939a0..81e1e14 100644
--- a/includes/debug/logger/monolog/WikiProcessor.php
+++ b/includes/debug/logger/monolog/WikiProcessor.php
@@ -29,6 +29,17 @@
  * @copyright © 2013 Bryan Davis and Wikimedia Foundation.
  */
 class WikiProcessor {
+       /** @var array Keys which should not be used in log context */
+       protected $reservedKeys = [
+               // from 
monolog:src/Monolog/Formatter/LogstashFormatter.php#L71-L88
+               'message', 'channel', 'level', 'type',
+               // from WebProcessor
+               'url', 'ip', 'http_method', 'server', 'referrer',
+               // from WikiProcessor
+               'host', 'wiki', 'reqId', 'mwversion',
+               // from config magic
+               'normalized_message',
+       ];
 
        /**
         * @param array $record
@@ -36,6 +47,15 @@
         */
        public function __invoke( array $record ) {
                global $wgVersion;
+
+               // some log aggregators such as Logstash will merge the log 
context into the main
+               // metadata and end up overwriting the data coming from 
processors
+               foreach ( $this->reservedKeys as $key ) {
+                       if ( isset( $record['context'][$key] ) ) {
+                               wfLogWarning( __METHOD__ . ": '$key' key 
overwritten in log context." );
+                       }
+               }
+
                $record['extra'] = array_merge(
                        $record['extra'],
                        [
@@ -47,5 +67,4 @@
                );
                return $record;
        }
-
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I6677dbf608aac1d7fd6036f5e51977d56ce2fc57
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Gergő Tisza <gti...@wikimedia.org>
Gerrit-Reviewer: Anomie <bjor...@wikimedia.org>
Gerrit-Reviewer: BryanDavis <bda...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to