diff options
Diffstat (limited to 'server/src/utils/Logger.ts')
| -rw-r--r-- | server/src/utils/Logger.ts | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/server/src/utils/Logger.ts b/server/src/utils/Logger.ts new file mode 100644 index 0000000..6b87806 --- /dev/null +++ b/server/src/utils/Logger.ts @@ -0,0 +1,44 @@ +import { createLogger, transports, format, addColors } from 'winston'; + +const loggerLevels = { + levels: { + error: 0, + debug: 1, + warn: 2, + data: 3, + info: 4, + verbose: 5, + silly: 6, + custom: 7, + }, + colors: { + error: 'red', + debug: 'blue', + warn: 'yellow', + data: 'grey', + info: 'green', + verbose: 'cyan', + silly: 'magenta', + custom: 'yellow', + }, +}; + +addColors(loggerLevels.colors); + +export const logger = createLogger({ + levels: loggerLevels.levels, + format: format.combine( + format.colorize({ level: true }), + format.errors({ stack: true }), + format.splat(), + format.timestamp({ format: 'MM/DD/YYYY HH:mm:ss' }), + format.printf((data: any) => { + const { timestamp, level, message, ...rest } = data; + return `[${timestamp}] ${level}: ${message}${ + Object.keys(rest).length ? `\n${JSON.stringify(rest, null, 2)}` : '' + }`; + }), + ), + transports: new transports.Console(), + level: 'custom', +}); |