From f16f8fe9c59825692b9bae8b842ed2f93fc723cf Mon Sep 17 00:00:00 2001 From: Bryan Davis Date: Sun, 22 Mar 2015 16:12:25 -0600 Subject: [PATCH] Allow MWLoggerMonologHandler to take prefix from channel Make MWLoggerMonologHandler replace a prefix of "{channel}" with the log event channel when formatting an event for a udp2log stream. This allows a simpler configuration for a typical Monolog configuration where a separate file is desired for each logging channel that is emitted to udp2log. One handler can be shared by multiple channels. Change-Id: Ie2b24ba02b281b8d8cf2ad58d28874c710e1e2e5 --- includes/debug/logger/monolog/Handler.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/includes/debug/logger/monolog/Handler.php b/includes/debug/logger/monolog/Handler.php index a872d84e28..9e7678d21c 100644 --- a/includes/debug/logger/monolog/Handler.php +++ b/includes/debug/logger/monolog/Handler.php @@ -30,7 +30,8 @@ * - HOST: IPv4, IPv6 or hostname * - PORT: server port * - PREFIX: optional (but recommended) prefix telling udp2log how to route - * the log event + * the log event. The special prefix "{channel}" will use the log event's + * channel as the prefix value. * * When not targeting a udp2log stream this class will act as a drop-in * replacement for Monolog's StreamHandler. @@ -194,7 +195,9 @@ class MWLoggerMonologHandler extends \Monolog\Handler\AbstractProcessingHandler // Clean it up for the multiplexer if ( $this->prefix !== '' ) { - $text = preg_replace( '/^/m', "{$this->prefix} ", $text ); + $leader = ( $this->prefix === '{channel}' ) ? + $record['channel'] : $this->prefix; + $text = preg_replace( '/^/m', "{$leader} ", $text ); // Limit to 64KB if ( strlen( $text ) > 65506 ) { -- 2.20.1