web-dev-qa-db-ja.com

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の形式を指定する必要があります。これを行うための規定はウィンストンであり、どんな助けも大いに高く評価されます

28
Amanda G

タイムスタンプオプションは、保存したいものを返す関数にすることができます...

4行目:

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

ここにソース: https://github.com/flatiron/winston/pull/12

45
Ben Evans

winston @ 3バージョン

winston.createLogger({
  format: winston.format.combine(
    winston.format.timestamp({format: 'YYYY-MM-DD HH:mm:ss'}),
    winston.format.prettyPrint()
  ),
  transports: [
    new winston.transports.Console()
  ]
})

タイムゾーンをサポートするには、formatをwinstonが呼び出す関数に変更する必要があります。

const timezoned = () => {
  return new Date().toLocaleString('en-US', {
    timeZone: 'Asia/Shanghai'
  });
};

const logger = createLogger({
  format: combine(
    timestamp({
      format: timezonedTime
    })
  ),
  transport: [
    new transports.Console(),
  ]
});
6
Chris Peng

良い結果を得るには、momentjsを使用できます。

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