Agora, se você está desenvolvendo um módulo, você tem várias maneiras de conectar o logger ao seu módulo. O tipo de módulo não importa em absoluto (público ou privado).
Método 1. Logger como um parâmetro de configuração do módulo
Você descreve no readme algo como: logger que você pode passar para o módulo deve responder aos métodos, por exemplo info
eerror
/**
*
* @module My awesome module
*
* @ param {Object} config - Config of my awesome module.
* @ param {Logger} config.logger - Logger that will be used by module.
*
*/
module.exports = function (config){
...
E então você tem que adicionar mais requisitos ao logger, por exemplo, quantos argumentos o logger pode obter. E então você tem que adicionar mais requisitos …
Mas ainda assim algo quebra no usuário final.
Método 2. Usando a biblioteca de registro completo
Por exemplo, você pode usar a biblioteca de registro completa em seu módulo, como winston ou bunyan. Mas primeiro está em cima. E segundo, os usuários não podem simplesmente alterar o formato das mensagens no log. Eles quase não podem fazer nada com o logger em seu módulo. E se eles puderem, eles vão para o inferno das dependências …
Método 3. Usando magia de mag
Você pode usar o mag em seu módulo. mag – é uma simples substituição do console. Você obtém uma saída bem formatada durante o desenvolvimento.
Se os usuários de seu módulo pensaram em formatar mensagens de log, eles podem exigir mag-hub em seu aplicativo e obter acesso ao fluxo de todos os objetos de log. Eles podem fazer qualquer transformação em suas mensagens antes de gravá-las no stdout.
Mais exemplos aqui: mag-examples
Links: