How can I add timestamp to logs using Node.js library Winston?

后端 未结 9 625
清歌不尽
清歌不尽 2021-01-31 12:55

I want to add timestamp to logs. What is the best way to achieve this?

9条回答
  •  执笔经年
    2021-01-31 13:34

    I was dealing with the same issue myself. There are two ways I was able to do this.

    When you include Winston, it usually defaults to adding a Console transport. In order to get timestamps to work in this default case, I needed to either:

    1. Remove the console transport and add again with the timestamp option.
    2. Create your own Logger object with the timestamp option set to true.

    The first:

    var winston = require('winston');
    winston.remove(winston.transports.Console);
    winston.add(winston.transports.Console, {'timestamp':true});
    

    The second, and cleaner option:

    var winston = require('winston');
    var logger = new (winston.Logger)({
        transports: [
          new (winston.transports.Console)({'timestamp':true})
        ]
    });
    

    Some of the other options for Console transport can be found here:

    • level: Level of messages that this transport should log (default 'debug').
    • silent: Boolean flag indicating whether to suppress output (default false).
    • colorize: Boolean flag indicating if we should colorize output (default false).
    • timestamp: Boolean flag indicating if we should prepend output with timestamps (default false). If function is specified, its return value will be used instead of timestamps.

提交回复
热议问题