style: format winston logger changes

This commit is contained in:
MythEclipse
2026-05-19 02:48:37 +07:00
parent f0b4f2cd56
commit e85967ae51
2 changed files with 22 additions and 11 deletions
+14 -8
View File
@@ -91,13 +91,20 @@ const serializeLogValue = (value: unknown): unknown => {
const formatLogMetadata = (metadata: LogMetadata): LogMetadata => { const formatLogMetadata = (metadata: LogMetadata): LogMetadata => {
return Object.fromEntries( return Object.fromEntries(
Object.entries(metadata).map(([key, value]) => [key, serializeLogValue(value)]), Object.entries(metadata).map(([key, value]) => [
key,
serializeLogValue(value),
]),
); );
}; };
const metadataFormat = winston.format((info) => { const metadataFormat = winston.format((info) => {
const { level: _level, message: _message, timestamp: _timestamp, ...metadata } = const {
info; level: _level,
message: _message,
timestamp: _timestamp,
...metadata
} = info;
for (const key of Object.keys(metadata)) { for (const key of Object.keys(metadata)) {
delete info[key]; delete info[key];
@@ -179,16 +186,15 @@ function wrapLogger(wLogger: winston.Logger): CustomLogger {
warn: logAtLevel("warn"), warn: logAtLevel("warn"),
info: logAtLevel("info"), info: logAtLevel("info"),
debug: logAtLevel("debug"), debug: logAtLevel("debug"),
trace: logAtLevel("debug"), // Map trace to debug in Winston npm levels trace: logAtLevel("debug"),
fatal: logAtLevel("error"), // Map fatal to error in Winston npm levels fatal: logAtLevel("error"),
silent: () => {}, silent: () => {},
child: (options: any) => { child: (options: any) => {
const childWinston = wLogger.child(options); const childWinston = wLogger.child(options);
return wrapLogger(childWinston); return wrapLogger(childWinston);
} },
}; };
// Add all winston.Logger properties/methods to custom logger to make typescript happy for standard properties
const proxy = new Proxy(wrapped, { const proxy = new Proxy(wrapped, {
get(target, prop) { get(target, prop) {
if (prop in target) { if (prop in target) {
@@ -199,7 +205,7 @@ function wrapLogger(wLogger: winston.Logger): CustomLogger {
return val.bind(wLogger); return val.bind(wLogger);
} }
return val; return val;
} },
}); });
return proxy; return proxy;
+8 -3
View File
@@ -1,5 +1,8 @@
import { describe, expect, it } from "vitest"; import { describe, expect, it } from "vitest";
import { formatLogMetadataForTest, serializeLogValueForTest } from "../src/logger"; import {
formatLogMetadataForTest,
serializeLogValueForTest,
} from "../src/logger";
class TestError extends Error { class TestError extends Error {
public code = "TEST_CODE"; public code = "TEST_CODE";
@@ -27,7 +30,9 @@ describe("logger serialization", () => {
it("serializes nested error metadata keys", () => { it("serializes nested error metadata keys", () => {
const error = new TestError(); const error = new TestError();
expect(formatLogMetadataForTest({ error, err: error, reason: error })).toMatchObject({ expect(
formatLogMetadataForTest({ error, err: error, reason: error }),
).toMatchObject({
error: { error: {
name: "TestError", name: "TestError",
message: "test failure", message: "test failure",
@@ -63,4 +68,4 @@ describe("logger serialization", () => {
pattern: "/voice/i", pattern: "/voice/i",
}); });
}); });
}); });