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 => {
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 { level: _level, message: _message, timestamp: _timestamp, ...metadata } =
info;
const {
level: _level,
message: _message,
timestamp: _timestamp,
...metadata
} = info;
for (const key of Object.keys(metadata)) {
delete info[key];
@@ -179,16 +186,15 @@ function wrapLogger(wLogger: winston.Logger): CustomLogger {
warn: logAtLevel("warn"),
info: logAtLevel("info"),
debug: logAtLevel("debug"),
trace: logAtLevel("debug"), // Map trace to debug in Winston npm levels
fatal: logAtLevel("error"), // Map fatal to error in Winston npm levels
trace: logAtLevel("debug"),
fatal: logAtLevel("error"),
silent: () => {},
child: (options: any) => {
const childWinston = wLogger.child(options);
return wrapLogger(childWinston);
}
},
};
// Add all winston.Logger properties/methods to custom logger to make typescript happy for standard properties
const proxy = new Proxy(wrapped, {
get(target, prop) {
if (prop in target) {
@@ -199,7 +205,7 @@ function wrapLogger(wLogger: winston.Logger): CustomLogger {
return val.bind(wLogger);
}
return val;
}
},
});
return proxy;
+8 -3
View File
@@ -1,5 +1,8 @@
import { describe, expect, it } from "vitest";
import { formatLogMetadataForTest, serializeLogValueForTest } from "../src/logger";
import {
formatLogMetadataForTest,
serializeLogValueForTest,
} from "../src/logger";
class TestError extends Error {
public code = "TEST_CODE";
@@ -27,7 +30,9 @@ describe("logger serialization", () => {
it("serializes nested error metadata keys", () => {
const error = new TestError();
expect(formatLogMetadataForTest({ error, err: error, reason: error })).toMatchObject({
expect(
formatLogMetadataForTest({ error, err: error, reason: error }),
).toMatchObject({
error: {
name: "TestError",
message: "test failure",
@@ -63,4 +68,4 @@ describe("logger serialization", () => {
pattern: "/voice/i",
});
});
});
});