Лучшая практика, позволяющая пользователям вводить регистратор в модули nodejs
Я написал этот модуль для nodejs, который можно использовать для отправки событий из любого места через sockjs клиентам.
Теперь я хотел бы включить некоторые настраиваемые механизмы ведения журналов.
На данный момент я добавляю winston как зависимость, требую его в качестве регистратора в каждом классе и использую logger.error, logger.warn, ...
#logger.js
var logger = require('winston');
module.exports=logger;
а также
#myClass
var logger = require("./logger");
logger.error("Something went wrong")
Теперь, как я могу сделать так, чтобы регистратор мог быть заменен пользовательским регистратором или чтобы пользователь настраивал уровень журнала из ВНЕШЕГО модуля?
Конечно, им не нужно прикасаться к коду модуля, чтобы изменить регистратор, но иметь возможность создавать регистратор с уровнем логирования, и мой модуль должен использовать его, если он доступен.
Любые рекомендации о том, как это сделать?
Или жесткая зависимость от "winston" в порядке, и уровень лога можно настраивать через npm-config?