winston:如何更改时间戳格式

时间:2012-12-21 09:39:50

标签: node.js winston

我使用winston在node.js中添加日志详细信息,我使用以下过程添加日志

 var winston = require('winston');         
 winston.remove(winston.transports.Console);
 winston.add(winston.transports.Console, {'timestamp':true,'colorize':true);
 winston.log('info','jjjj');

我得到的输出是

2012-12-21T09:32:05.428Z - info: jjjj

我需要为mytimestamp指定一种格式,在winston中是否有任何规定可以提供任何帮助将非常感谢

3 个答案:

答案 0 :(得分:43)

时间戳选项可以是一个函数,它返回您希望将其保存为...

第4行:

winston.add(winston.transports.Console, {'timestamp':function() {return '111111111'; },'colorize':true});

来源:https://github.com/flatiron/winston/pull/120

答案 1 :(得分:3)

为了获得好结果,您可以使用momentjs:

const moment = require('moment')
...
...
timestamp: () => {
        return moment().format('YYYY-MM-DD hh:mm:ss')
      }

答案 2 :(得分:0)

要更改 winston 日志格式的时间戳格式,我们可以将字符串或返回字符串的函数作为参数传递给 winston.format.timestamp(format)带格式参数的函数。另外,我们可以使用组合函数来自定义日志格式

 const LOG_FORMAT = WINSTON.format.combine(
    WINSTON.format.align(),
    WINSTON.format.timestamp({format:'DD-MM-YYYY T hh:mm:ss.sss A'}),
    
    WINSTON.format.printf(({ level, message, timestamp, label }) => {
        return `[ ${level.toUpperCase()} | ${timestamp} | LOG:${message} ]`;
    })
)
    const APP_LOGGER = WINSTON.createLogger({
    format: LOG_FORMAT,
    transports: [
        new WINSTON.transports.Console(),
        new WINSTON.transports.File({
            filename: './logs/app.log'
        })
    ]
})