Skip to content

Commit 9e2f797

Browse files
authored
Don't overwrite structured 'message' in logs with empty string. Fixes #1404 (#1416)
1 parent 258cdcd commit 9e2f797

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

spec/logger.spec.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,24 @@ describe("logger", () => {
6161
message: "hello world null",
6262
});
6363
});
64+
65+
it("should overwrite a 'message' field in structured object if a message is provided", () => {
66+
logger.log("this instead", { test: true, message: "not this" });
67+
expectStdout({
68+
severity: "INFO",
69+
message: "this instead",
70+
test: true,
71+
});
72+
});
73+
74+
it("should not overwrite a 'message' field in structured object if no other args are provided", () => {
75+
logger.log({ test: true, message: "this" });
76+
expectStdout({
77+
severity: "INFO",
78+
message: "this",
79+
test: true,
80+
});
81+
});
6482
});
6583

6684
describe("write", () => {

src/logger/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,15 @@ function entryFromArgs(severity: LogSeverity, args: any[]): LogEntry {
154154
if (severity === "ERROR" && !args.find((arg) => arg instanceof Error)) {
155155
message = new Error(message).stack || message;
156156
}
157-
return {
157+
const out: LogEntry = {
158158
"logging.googleapis.com/trace": ctx?.traceId
159159
? `projects/${process.env.GCLOUD_PROJECT}/traces/${ctx.traceId}`
160160
: undefined,
161161
...entry,
162162
severity,
163-
message,
164163
};
164+
if (message) {
165+
out.message = message;
166+
}
167+
return out;
165168
}

0 commit comments

Comments
 (0)