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
* - HOST: IPv4, IPv6 or hostname
* - PORT: server port
* - PREFIX: optional (but recommended) prefix telling udp2log how to route
* - HOST: IPv4, IPv6 or hostname
* - PORT: server port
* - PREFIX: optional (but recommended) prefix telling udp2log how to route
+ * 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.
*
* When not targeting a udp2log stream this class will act as a drop-in
* replacement for Monolog's StreamHandler.
// Clean it up for the multiplexer
if ( $this->prefix !== '' ) {
// 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 ) {
// Limit to 64KB
if ( strlen( $text ) > 65506 ) {