All files / src/common/utils logger.js

100% Statements 7/7
40% Branches 4/10
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49      5x 17x                             18x     18x           5x                   2x     2x              
import { createLogger, transports, format } from "winston";
import config from "../../config.js";
 
const newLogger = function(entity = "", enableStack = true) {
	return createLogger({
		defaultMeta: { service: entity },
		transports: [
			new transports.File({
				level: 'debug',
				dirname: "./logs",
				filename: config.app.name + ".debug.log",
			}),
		],
		format: format.combine(
			format.errors({stack: enableStack}),
			format.colorize(),
			format.timestamp(),
			format.splat(),
			format.printf(({ timestamp, level, message, service, stack }) => {
				const log = service
					? `[${timestamp}] [${service}] ${level}: ${message}`
					: `[${timestamp}] ${level}: ${message} ${stack ?? ''}`;
					return stack ? log + '\n' + stack : log;
			}),
		),
	})
};
 
const consoleLogger = createLogger({
	transports: new transports.Console({
			level: 'debug'
		}),
	format: format.combine(
		format.errors({ stack: true }),
		format.colorize(),
		format.timestamp(),
		format.splat(),
		format.printf(({ timestamp, level, message, service }) => {
			const log = service
				? `[${timestamp}] [${service}] ${level}: ${message}`
				: `[${timestamp}] ${level}: ${message}`;
			return log;
		}),
	),
});
 
 
export { newLogger, consoleLogger };