Winston: как изменить формат timestamp
Я использую 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, любая помощь будет очень оценена
Ответы
Ответ 1
Опция timestamp может быть функцией, которая возвращает то, что вы хотите сохранить как...
Строка 4:
winston.add(winston.transports.Console, {'timestamp':function() {return '111111111'; },'colorize':true});
Источник здесь: https://github.com/flatiron/winston/pull/120
Ответ 2
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
на функцию, которую вызовет Уинстон.
const timezoned = () => {
return new Date().toLocaleString('en-US', {
timeZone: 'Asia/Shanghai'
});
};
const logger = createLogger({
format: combine(
timestamp({
format: timezonedTime
})
),
transport: [
new transports.Console(),
]
});
Ответ 3
для хорошего результата вы можете использовать momentjs:
const moment = require('moment')
...
...
timestamp: () => {
return moment().format('YYYY-MM-DD hh:mm:ss')
}