Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WinstonJS custom levels

So I wanted to add two levels to my logger. But it is not logging, I have no idea why.. Here is my setup. Any ideas?

// setup
var logLevels = {
    levels: {
        trace: 0,
        debug: 1,
        info: 2,
        warn: 3,
        error: 4,
        critical: 5
    }
};

var logger = new (winston.Logger)({
    levels: logLevels.levels,
    transports: [
        new winston.transports.Console()
    ]
});

// test
console.info('----------------------');
logger.trace('trace');
logger.debug('debug');
logger.info('info');
logger.warn('warn');
logger.error('error');
logger.critical('critical');
console.info('----------------------');

Output:

----------------------
debug: debug
trace: trace
info: info
----------------------
like image 536
boop Avatar asked Feb 09 '23 09:02

boop


1 Answers

winston Logging levels

First problem here, Each level is given a specific integer priority. By default, its

{ error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 }

So less is more important.

Second, you must specify level to each transport. In your case, you must set level to critical to show all messages.

winston allows you to define a level property on each transport which specifies the maximum level of messages that a transport should log.

var logger = new (winston.Logger)({
    levels: logLevels.levels,
    transports: [
        new winston.transports.Console({level: 'critical'})
    ]
});
like image 178
Alexey B. Avatar answered Feb 12 '23 09:02

Alexey B.