mirror of
https://github.com/Seldaek/monolog.git
synced 2025-10-20 16:16:37 +02:00
Google Cloud Logging doesn't show the correct level log when using JsonFormatter, making observability a bit trickier. This applies minor tweaks to the default format, allowing log entries to be properly represented. There are alternative packages to this but they add fields that aren't strictly required - also performing `debug_backtrace()` calls that are usually not desired when in production mode. Signed-off-by: Luís Cobucci <lcobucci@gmail.com>
55 lines
1.7 KiB
PHP
55 lines
1.7 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
/*
|
|
* This file is part of the Monolog package.
|
|
*
|
|
* (c) Jordi Boggiano <j.boggiano@seld.be>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Monolog\Formatter;
|
|
|
|
use DateTimeInterface;
|
|
use Monolog\Test\TestCase;
|
|
use function json_decode;
|
|
|
|
class GoogleCloudLoggingFormatterTest extends TestCase
|
|
{
|
|
/**
|
|
* @test
|
|
*
|
|
* @covers \Monolog\Formatter\JsonFormatter
|
|
* @covers \Monolog\Formatter\GoogleCloudLoggingFormatter::normalizeRecord
|
|
*/
|
|
public function formatProvidesRfc3339Timestamps(): void
|
|
{
|
|
$formatter = new GoogleCloudLoggingFormatter();
|
|
$record = $this->getRecord();
|
|
|
|
$formatted_decoded = json_decode($formatter->format($record), true);
|
|
$this->assertArrayNotHasKey("datetime", $formatted_decoded);
|
|
$this->assertArrayHasKey("timestamp", $formatted_decoded);
|
|
$this->assertSame($record->datetime->format(DateTimeInterface::RFC3339_EXTENDED), $formatted_decoded["timestamp"]);
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*
|
|
* @covers \Monolog\Formatter\JsonFormatter
|
|
* @covers \Monolog\Formatter\GoogleCloudLoggingFormatter::normalizeRecord
|
|
*/
|
|
public function formatIntroducesLogSeverity(): void
|
|
{
|
|
$formatter = new GoogleCloudLoggingFormatter();
|
|
$record = $this->getRecord();
|
|
|
|
$formatted_decoded = json_decode($formatter->format($record), true);
|
|
$this->assertArrayNotHasKey("level", $formatted_decoded);
|
|
$this->assertArrayNotHasKey("level_name", $formatted_decoded);
|
|
$this->assertArrayHasKey("severity", $formatted_decoded);
|
|
$this->assertSame($record->level->getName(), $formatted_decoded["severity"]);
|
|
}
|
|
}
|