/ src / logger.ts
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;