I have tried to show filename using winston logger in nodejs app, but it is always showing the index.js file as the filename. And I can't find any way to show the line number correctly:
const path = require('path');
const logLevel = 'debug';
const {
createLogger,
format,
transports,
config,
} = require('winston');
const customTransports = [];
const transportOptions = {};
if (config.env === 'development') {
transportOptions.format = format.combine(
format.cli(),
format.errors({ stack: true }),
format.splat(),
format.simple(),
);
}
customTransports.push(new transports.Console(transportOptions));
const defaultConfig = {
level: logLevel,
levels: config.npm.levels,
format: format.combine(
format.label({ label: path.basename(process.mainModule.filename) }),
format.colorize(),
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
format.printf(
({
level, message, label, timestamp,
}) => `${timestamp} ${level} [${label}]: ${message}`,
),
),
transports: customTransports,
exitOnError: false,
};
const logger = createLogger(defaultConfig);
module.exports = logger;
I am using this version "winston": "^3.2.1"
could you help me show the line number and filename of the log?