From 80438ecacd16632b00a4ab7e07f402fd04a159e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Tue, 3 Oct 2023 01:03:31 -0400 Subject: [PATCH] refactor(server/utils): create custom winston logger --- lib/server/logger.ts | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 lib/server/logger.ts diff --git a/lib/server/logger.ts b/lib/server/logger.ts new file mode 100644 index 0000000..f5f9c02 --- /dev/null +++ b/lib/server/logger.ts @@ -0,0 +1,44 @@ +import winston from "winston"; +const { combine, timestamp, simple, splat, printf, colorize } = winston.format; + +winston.add; + +const fmt = printf(({ timestamp, level, message, meta }) => { + return `${timestamp} [${level}] ------ ${message} ${ + !!meta.durationMs ? "\n (took) " + meta.durationMs + "ms" : "" + }`; +}); + +const cfmt = combine(colorize(), timestamp(), splat(), fmt); + +const loggerTransports: any[] = [ + new winston.transports.Console({ + format: cfmt, + handleExceptions: true, + handleRejections: true, + // json: false + }), +]; + +process.env.NODE_ENV?.toLowerCase() == "development" && + loggerTransports.push( + new winston.transports.File({ + filename: "/var/log/rockfic.debug.log", + level: "debug", + format: combine(timestamp(), splat(), fmt), + handleExceptions: true, + handleRejections: true, + }), + ); + +const logger = winston.createLogger({ + levels: winston.config.syslog.levels, + transports: loggerTransports, + format: cfmt, +}); + +// app.listen(7000, () => logger.debug("fuckyou")) + +// console.log(api.stack) + +export const log = logger;