NodeJS e Loggers – Módulos (parte 2)

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 infoeerror

/**
*

* @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: