monolog: add CeeFormatter
This formatter extends LogstashFormatter to prefix records with "cee token" used for syslog and JSON structured logging. See also related task for more context. Bug: T211124 Change-Id: I3cdeb4c666f54039b5e8ecc67bd4937220333526
This commit is contained in:
parent
0481365004
commit
667b17a319
3 changed files with 41 additions and 0 deletions
|
|
@ -886,6 +886,7 @@ $wgAutoloadLocalClasses = [
|
|||
'MediaWiki\\Logger\\MonologSpi' => __DIR__ . '/includes/debug/logger/MonologSpi.php',
|
||||
'MediaWiki\\Logger\\Monolog\\AvroFormatter' => __DIR__ . '/includes/debug/logger/monolog/AvroFormatter.php',
|
||||
'MediaWiki\\Logger\\Monolog\\BufferHandler' => __DIR__ . '/includes/debug/logger/monolog/BufferHandler.php',
|
||||
'MediaWiki\\Logger\\Monolog\\CeeFormatter' => __DIR__ . '/includes/debug/logger/monolog/CeeFormatter.php',
|
||||
'MediaWiki\\Logger\\Monolog\\KafkaHandler' => __DIR__ . '/includes/debug/logger/monolog/KafkaHandler.php',
|
||||
'MediaWiki\\Logger\\Monolog\\LegacyFormatter' => __DIR__ . '/includes/debug/logger/monolog/LegacyFormatter.php',
|
||||
'MediaWiki\\Logger\\Monolog\\LegacyHandler' => __DIR__ . '/includes/debug/logger/monolog/LegacyHandler.php',
|
||||
|
|
|
|||
23
includes/debug/logger/monolog/CeeFormatter.php
Normal file
23
includes/debug/logger/monolog/CeeFormatter.php
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace MediaWiki\Logger\Monolog;
|
||||
|
||||
/**
|
||||
* CeeFormatter extends LogstashFormatter to prefix records with a "cee cookie".
|
||||
* The cookie is used to tell JSON and non-JSON messages apart when logging to syslog.
|
||||
* See also: https://www.rsyslog.com/doc/v8-stable/configuration/modules/mmjsonparse.html
|
||||
*
|
||||
* Compatible with Monolog 1.x only.
|
||||
*
|
||||
* @since 1.33
|
||||
*/
|
||||
class CeeFormatter extends LogstashFormatter {
|
||||
/**
|
||||
* Format records with a cee cookie
|
||||
* @param array $record
|
||||
* @return array
|
||||
*/
|
||||
public function format( array $record ) {
|
||||
return "@cee: " . parent::format( $record );
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace MediaWiki\Logger\Monolog;
|
||||
|
||||
/**
|
||||
* @covers \MediaWiki\Logger\Monolog\CeeFormatter
|
||||
*/
|
||||
class CeeFormatterTest extends \PHPUnit\Framework\TestCase {
|
||||
public function testV1() {
|
||||
$ls_formatter = new LogstashFormatter( 'app', 'system', null, 'ctx_', LogstashFormatter::V1 );
|
||||
$cee_formatter = new CeeFormatter( 'app', 'system', null, 'ctx_', LogstashFormatter::V1 );
|
||||
$record = [ 'extra' => [ 'url' => 1 ], 'context' => [ 'url' => 2 ] ];
|
||||
$this->assertSame(
|
||||
$cee_formatter->format( $record ),
|
||||
"@cee: " . $ls_formatter->format( $record ) );
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue