diff --git a/src/sdk/logger.test.ts b/src/sdk/logger.test.ts index bf4951cf..75b645e9 100644 --- a/src/sdk/logger.test.ts +++ b/src/sdk/logger.test.ts @@ -36,7 +36,7 @@ describe("defaultLoggerAdapter", () => { expect(logSpy).toHaveBeenCalledOnce(); const arg = logSpy.mock.calls[0]?.[0] as string; const parsed = JSON.parse(arg); - expect(parsed).toMatchObject({ level: "info", msg: "hello", foo: 1 }); + expect(parsed).toMatchObject({ level: "INFO", msg: "hello", foo: 1 }); expect(typeof parsed.timestamp).toBe("string"); }); diff --git a/src/sdk/logger.ts b/src/sdk/logger.ts index c9aab8a3..67b667e4 100644 --- a/src/sdk/logger.ts +++ b/src/sdk/logger.ts @@ -52,7 +52,7 @@ export interface LoggerAdapter { export const defaultLoggerAdapter: LoggerAdapter = { log(level, msg, attrs) { const payload: Record = { - level, + level: level.toUpperCase(), msg, timestamp: new Date().toISOString(), }; diff --git a/src/sdk/otel.test.ts b/src/sdk/otel.test.ts index fd847321..fd23215a 100644 --- a/src/sdk/otel.test.ts +++ b/src/sdk/otel.test.ts @@ -449,7 +449,7 @@ describe("instrumentWorker — OTLP/HTTP error-log channel wiring", () => { }>; }; const rec = payload.resourceLogs[0].scopeLogs[0].logRecords[0]; - expect(rec.severityText).toBe("error"); + expect(rec.severityText).toBe("ERROR"); expect(rec.body.stringValue).toBe("payment failed"); }); @@ -498,7 +498,7 @@ describe("instrumentWorker — OTLP/HTTP error-log channel wiring", () => { const payload = JSON.parse(calls[0].body) as { resourceLogs: Array<{ scopeLogs: Array<{ logRecords: Array<{ severityText: string }> }> }>; }; - expect(payload.resourceLogs[0].scopeLogs[0].logRecords[0].severityText).toBe("info"); + expect(payload.resourceLogs[0].scopeLogs[0].logRecords[0].severityText).toBe("INFO"); }); it("otlpLogsEnabled=false disables the channel even when env is set", async () => { diff --git a/src/sdk/otel.ts b/src/sdk/otel.ts index c3e0e814..6d6e44de 100644 --- a/src/sdk/otel.ts +++ b/src/sdk/otel.ts @@ -754,7 +754,7 @@ function bootObservability(opts: OtelOptions, env: Record): voi try { warnDirect( JSON.stringify({ - level: "warn", + level: "WARN", msg: "otlp error-log exporter", kind, error: err instanceof Error ? err.message : String(err), @@ -819,7 +819,7 @@ function bootObservability(opts: OtelOptions, env: Record): voi try { warnDirect( JSON.stringify({ - level: "warn", + level: "WARN", msg: "otlp metrics exporter", kind, error: err instanceof Error ? err.message : String(err), @@ -891,7 +891,7 @@ function bootObservability(opts: OtelOptions, env: Record): voi try { warnDirect( JSON.stringify({ - level: "warn", + level: "WARN", msg: "otlp traces exporter", kind, error: err instanceof Error ? err.message : String(err), @@ -928,7 +928,7 @@ function bootObservability(opts: OtelOptions, env: Record): voi try { warnDirect( JSON.stringify({ - level: "info", + level: "INFO", msg: "observability booted", service: serviceName, analyticsEngine: aeEnabled, diff --git a/src/sdk/otelHttpLog.test.ts b/src/sdk/otelHttpLog.test.ts index e5fc1214..0189d1c9 100644 --- a/src/sdk/otelHttpLog.test.ts +++ b/src/sdk/otelHttpLog.test.ts @@ -83,7 +83,7 @@ describe("createOtlpHttpLogAdapter — level filter + OTLP shape", () => { expect(calls).toHaveLength(1); const p = JSON.parse(String(calls[0].init.body)) as OtlpLogsPayload; const r = p.resourceLogs[0].scopeLogs[0].logRecords[0]; - expect(r.severityText).toBe("error"); + expect(r.severityText).toBe("ERROR"); expect(r.severityNumber).toBe(17); expect(r.body.stringValue).toBe("boom"); expect(r.attributes).toContainEqual({ diff --git a/src/sdk/otelHttpLog.ts b/src/sdk/otelHttpLog.ts index 0f6b45b4..2269d370 100644 --- a/src/sdk/otelHttpLog.ts +++ b/src/sdk/otelHttpLog.ts @@ -217,7 +217,7 @@ export function createOtlpHttpLogAdapter(options: OtlpHttpLogOptions): OtlpHttpL timeUnixNano: t, observedTimeUnixNano: t, severityNumber: SEVERITY_NUMBER[level], - severityText: level, + severityText: level.toUpperCase(), body: msg, attributes: attrs ? { ...attrs } : {}, traceId: spanCtx?.traceId ?? "",