Skip to content

Commit 0492e03

Browse files
authored
fix(gcp): allow logging message as jsonPayload (#393)
Closes #394
1 parent f86ff70 commit 0492e03

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

gcp/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.1.2-wip
2+
3+
- `cloudLoggingMiddleware` uses structured logs (`jsonPayload`) when message is of type `Map`. All other messages are logged as text (`textPayload`).
4+
15
## 0.1.1
26

37
- Require Dart 3.0

gcp/lib/src/logging.dart

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ final _loggerKey = Object();
9898

9999
/// Return [Middleware] that logs errors using Google Cloud structured logs and
100100
/// returns the correct response.
101+
/// Log messages of type [Map] are logged as structured logs (`jsonPayload`).
102+
/// All other logs messages are logged as text logs (`textPayload`).
101103
Middleware cloudLoggingMiddleware(String projectId) {
102104
Handler hostedLoggingMiddleware(Handler innerHandler) => (request) async {
103105
// Add log correlation to nest all log messages beneath request log in
@@ -229,13 +231,18 @@ class _CloudLogger extends RequestLogger {
229231
_CloudLogger(this._zone, this._traceId);
230232

231233
@override
232-
void log(Object message, LogSeverity severity) =>
233-
_zone.print(_createLogEntry(_traceId, '$message', severity));
234+
void log(Object message, LogSeverity severity) => _zone.print(
235+
_createLogEntry(
236+
_traceId,
237+
message is Map ? message : '$message',
238+
severity,
239+
),
240+
);
234241
}
235242

236243
String _createLogEntry(
237244
String? traceValue,
238-
String message,
245+
Object message,
239246
LogSeverity severity, {
240247
Frame? stackFrame,
241248
}) {

gcp/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: gcp
22
description: >-
33
Utilities for running Dart code correctly on the Google Cloud Platform.
4-
version: 0.1.1
4+
version: 0.1.2-wip
55
repository: https://github.com/GoogleCloudPlatform/functions-framework-dart/tree/main/gcp
66

77
environment:

0 commit comments

Comments
 (0)