mirror of
https://github.com/Seldaek/monolog.git
synced 2025-07-31 02:10:22 +02:00
Fix date/time field for GCP logging (#1759)
We introduced the formatter using the incorrect field, which was making GCP not to extract the correct value from the payload. This uses the field that actually maps to the expected format. More info: https://cloud.google.com/logging/docs/structured-logging
This commit is contained in:
@@ -17,6 +17,7 @@ use Monolog\LogRecord;
|
||||
/**
|
||||
* Encodes message information into JSON in a format compatible with Cloud logging.
|
||||
*
|
||||
* @see https://cloud.google.com/logging/docs/structured-logging
|
||||
* @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
|
||||
*
|
||||
* @author Luís Cobucci <lcobucci@gmail.com>
|
||||
@@ -29,7 +30,7 @@ final class GoogleCloudLoggingFormatter extends JsonFormatter
|
||||
|
||||
// Re-key level for GCP logging
|
||||
$normalized['severity'] = $normalized['level_name'];
|
||||
$normalized['timestamp'] = $record->datetime->format(DateTimeInterface::RFC3339_EXTENDED);
|
||||
$normalized['time'] = $record->datetime->format(DateTimeInterface::RFC3339_EXTENDED);
|
||||
|
||||
// Remove keys that are not used by GCP
|
||||
unset($normalized['level'], $normalized['level_name'], $normalized['datetime']);
|
||||
|
@@ -30,8 +30,8 @@ class GoogleCloudLoggingFormatterTest extends TestCase
|
||||
|
||||
$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"]);
|
||||
$this->assertArrayHasKey("time", $formatted_decoded);
|
||||
$this->assertSame($record->datetime->format(DateTimeInterface::RFC3339_EXTENDED), $formatted_decoded["time"]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user