У меня есть регистратор с консольным транспортом и другой транспорт, который идет в облачную службу ведения журнала. Для консоли я хочу добавлять к сообщениям метку времени и раскрашивать их. Для облачной службы ведения журнала мне не нужны временные метки, потому что служба предоставляет свои собственные, и мне тоже не нужны цвета.
PR для этой функции уже отправлены: # 427 и # 422
Возможна ли уже настройка форматов для каждого транспорта, но я не видел объяснения этой возможности в README?
Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.
const logger = winston.createLogger({
transports: [
new winston.transports.File({
filename: 'error.log', level: 'error',
format: winston.format.simple(),
}),
new winston.transports.File({
filename: 'combined.log', level: 'debug',
format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
}),
],
});
logger.error('prefixed by the timestamp only in `combined.log`');
Обязательно добавьте в документы плз
@dandv Код printf в вашем комментарии не работает из коробки, после кода временной метки отсутствует закрывающая скобка.
Итак, эта строка ...
format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
... нужна такая закрывающая скобка
format: winston.format.printf(info => `${new Date().toISOString()}, ${info.message}`),
Спасибо за код и знания для настраиваемого форматирования! Очень признателен!
Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.
const logger = winston.createLogger({ transports: [ new winston.transports.File({ filename: 'error.log', level: 'error', format: winston.format.simple(), }), new winston.transports.File({ filename: 'combined.log', level: 'debug', format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`), }), ], }); logger.error('prefixed by the timestamp only in `combined.log`');
@dandv а что, если у меня есть другой формат вне транспортов и внутри метода создания регистратора. Какой формат будет применяться?
Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.
const logger = winston.createLogger({ transports: [ new winston.transports.File({ filename: 'error.log', level: 'error', format: winston.format.simple(), }), new winston.transports.File({ filename: 'combined.log', level: 'debug', format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`), }), ], }); logger.error('prefixed by the timestamp only in `combined.log`');
@dandv а что, если у меня есть другой формат вне транспортов и внутри метода создания регистратора. Какой формат будет применяться?
Тот, что внутри.
Самый полезный комментарий
Неважно, это действительно возможно, но в документации полностью отсутствует упоминание об этой функции.