в настоящее время, если я запускаю logger.debug('message')
, я получаю такой вывод
{"message":"message","level":"debug"}
Можно ли что-то сделать при создании логгера, чтобы сообщение выглядело примерно так?
{"message":"message","level":"debug","name":"someModule"}
В конце я бы хотел, чтобы для каждого модуля был настроен собственный логгер, чтобы было ясно, в какой модуль пришло логирование.
Если у Winston Logger нет собственной функции, можете ли вы порекомендовать одну библиотеку журналирования, которая имеет?
🤔 А знаете ли вы, что...
JavaScript используется для разработки современных одностраничных приложений (SPA), где весь контент загружается асинхронно.
Вы можете использовать пользовательский регистратор
Там вы можете определить что-то вроде:
var log = require('custom-logger').config({ format: "%message% %level%[%timestamp%]: %name%" });
также что-то более сложное, например:
log.new({
alert: { level: 3, color: 'red', event: 'alert', format: '!!!!!%event% : %message% !!!!!' name: '%name%' }
});
И очень просто:
log.info("I see %d %s!", 3, "bananas");
Получение вывода: Выводы "Я вижу 3 банана!"
Для вашего конкретного вопроса вы можете добавить это в свой код:
log.new({
debug: { message: "This is the message" , level :"debug", name: "Your module name"}
});
Чтобы использовать стандарт, предоставляемый библиотекой:
log.new({
fatal: { message: "THIS IS THE END!" , level :"fatal", name: "Your module name"}
});
Если вы хотите определить свои собственные цвета для лучшего обзора:
log.info().config({ color: 'cyan' }); //This should be declared as global
log.info('Hello World!');
Также вы можете назначить
try {
eval('alert("Hello world)');
}
catch(error) {
console.error(error);
log.new({
error: { message: error, level :"error", name: "Your module name"}
});
}