Я использую пользовательский регистратор winston
для одновременной записи в консоль и в файл в зависимости от уровня ведения журнала (т.е. что-либо в консоль, но только ошибки и предупреждения в файл). Почему-то запись в консоль работает, а в файл ничего не записывается, хоть и вызываю ошибку.
Изначально я перепутал порядок уровней, начиная с trace
=0 и заканчивая error
=9. Пока у меня была такая установка winston
писал в файл, а не в консоль. Я предполагаю, что winston
записывает только в один транспорт, а затем останавливается?
Мой конфиг выглядит так:
import winston from 'winston';
const logger = new (winston.Logger)({
levels: {
trace: 9,
input: 8,
verbose: 7,
prompt: 6,
debug: 5,
info: 4,
data: 3,
help: 2,
warn: 1,
error: 0,
},
colors: {
trace: 'magenta',
input: 'grey',
verbose: 'cyan',
prompt: 'grey',
debug: 'blue',
info: 'green',
data: 'grey',
help: 'cyan',
warn: 'yellow',
error: 'red',
},
});
logger.add(winston.transports.Console, {
level: 'trace',
prettyPrint: true,
colorize: true,
silent: false,
timestamp: false,
});
logger.add(winston.transports.File, {
prettyPrint: false,
level: 'error',
silent: false,
colorize: true,
timestamp: true,
filename: `${__dirname}/../logs/error.log`,
maxsize: 40000,
maxFiles: 10,
json: false,
});