logger.ts
1 import { getNamespace } from "cls-hooked"; 2 import { createLogger, format, transports } from "winston"; 3 4 const myFormat = format.printf(({ level, message, timestamp }) => { 5 const loggerNamespace = getNamespace("logger"); 6 let correlationId = loggerNamespace 7 ? loggerNamespace.get("correlationId") 8 : ""; 9 correlationId = correlationId ? correlationId : ""; 10 return `[${timestamp}] [${level}] [${correlationId}]: ${message}`; 11 }); 12 13 // Configure the Winston logger. For the complete documentation see https://github.com/winstonjs/winston 14 const logger = createLogger({ 15 // To see more detailed errors, change this to 'debug' 16 level: "debug", 17 format: format.combine(format.timestamp(), format.splat(), myFormat), 18 transports: [new transports.Console()], 19 }); 20 21 export default logger;