3

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?

teebeetee
  • 549
  • 1
  • 8
  • 23

0 Answers0