Usando o winston, uma versátil biblioteca de logs para node.js thisdavej arthrosis deformans

Hoje, vamos explorar o Winston, uma biblioteca de log versátil para o Node.js. O Winston pode ser usado em vários contextos, incluindo nos frameworks web do Node, como o Express, e o significado da artrite do Node CLI em aplicativos telugu. Nós também nos aprofundaremos em recursos que tornam o Winston um bom ajuste para aplicativos IoT, como o registro de entradas com registro de data e hora em arquivos. Este artigo foi atualizado para refletir a última geração de Winston no momento da redação deste artigo, que é o Winston 3.x.

Vamos primeiro criar uma nova pasta de projeto para que possamos levar o Winston para um test drive. Eu recomendo que você escolha um nome de diretório como winston-test ao invés de winston para garantir que o npm não produza um erro e se recuse a instalar um pacote como uma dependência de si mesmo.

Conforme descrito em maiores detalhes na documentação, o Winston fornece diferentes níveis de registro com valores inteiros associados. Em nosso exemplo acima, utilizamos o "info" e "depurar" níveis de registro. Por padrão, o Winston usa os níveis de log utilizados pelo npm: {error: 0, warn: 1, info: 2, verbose: 3, debug: 4, bobo: 5}

Os níveis de log nos beneficiam, uma vez que podemos escolher os limites de nível de log para determinar quais mensagens de log serão exibidas. Por exemplo, você pode artrite associados colorado springs usam um limite de nível de log diferente para fazer logon no console versus o log em um arquivo, ou você pode optar por aumentar temporariamente o nível de limite de mensagens de log para auxiliar na solução de problemas.

O Winston fornece outros tipos de níveis de log, como níveis de syslog, e você pode até criar seus próprios níveis personalizados. Usaremos os níveis de npm padrão neste tutorial, mas, tenha certeza, outras opções estarão disponíveis se você precisar delas. Saída de log do console do Colorize Winston

Neste exemplo, modificamos o teste de artrite reumatóide Winston "transporte" para o console adicionar uma função adicional format.colorize (). Para utilizar vários formatos, o Winston exige que envolvamos as funções de formato dentro de uma função format.combine como mostrado acima. Execute este exemplo e você verá uma saída colorida em seu console que varia de acordo com o nível de log da mensagem. Adicionar registros de data e hora às entradas de log

Para permitir que os nódulos de artrite de carimbos de data e hora nas mãos apareçam na entrada de registro, alteramos nosso formato de format.simple () para format.printf. Nós também levamos um entalhe, especificando um formato de timestamp para obter um controle preciso sobre o formato do timestamp. Registre-se em um arquivo além do console

Como mostrado acima, criamos um diretório de log, se ele não existir. Nós também adicionamos o segundo transporte para um arquivo. Observe também que podemos especificar diferentes níveis (limites) para nossos transportes. Neste contexto, se estamos rodando em um ambiente de desenvolvimento, usamos um nível de depuração e, portanto, enviamos mais mensagens para o arquivo de log do que enviamos artrose cervicale et sport para o console que é configurado com um nível de informação.

Quando você executa esse código, você deve ver um arquivo de log criado antes dos seus olhos. Sinta-se à vontade para experimentar os níveis ao gravar entradas de log e ver como a saída do log varia entre o console e o arquivo de log. Registre-se no console no formato de texto padrão e registre no arquivo no formato JSON

Também podemos adaptar os transportes individuais para efetuar login no console usando o formato de texto padrão e registrar em um arquivo usando o formato JSON. O formato de arquivo JSON pode ser útil se você tiver algumas ferramentas para filtrar os dados usando o formato JSON, por exemplo. ‘use estrito’;

Como último exemplo, vamos adicionar um módulo npm para criar automaticamente artrite nos dedos sintomas um novo arquivo de log todos os dias. Essa mesma funcionalidade pode ser realizada de outras maneiras, incluindo o uso do comando logrotate no mundo Linux; no entanto, vamos demonstrar uma maneira de fazer piadas com artrite, isso acontece aqui no contexto de Winston.

Neste exemplo de código, alteramos nosso transporte de arquivo para usar o transporte winston-daily-rotate-file que instalamos acima. Ao instanciar o dailyRotateFileTransport, também podemos fornecer opções para controlar o formato e a localização de nosso arquivo de log. Coisas boas!

Você também notará neste exemplo que incluí algumas mensagens de log adicionais em vários níveis de log e alterei o transporte de arquivo para usar um nível de log detalhado se a máquina estiver em um ambiente de desenvolvimento. Você pode experimentar com eles para solidificar sua compreensão dos níveis de registro do Winston e observar como as mensagens de registro aparecem (ou não aparecem) no console do ramdev yoga para artrite no hindi e no arquivo de log.

Nós agora encapsulamos a funcionalidade do logger Winston em um módulo Node que podemos chamar de outros arquivos. Como parte deste código, também introduzimos uma função Winston que não cobrimos chamada format.label: format.label ({label: path.basename (caller)}),

Essa função de rótulo fornece algum texto adicional para o Winston exibir na entrada de log. Dentro desta função, incluímos uma expressão que fornece o nome do arquivo que chama nosso módulo logger.js com a ajuda de um parâmetro (chamador) que é passado quando o módulo é invocado. Em nossa primeira iteração, utilizamos module.parent.filename; no entanto, module.parent.filename é armazenado em cache após ser chamado por um primeiro arquivo de chamada e nunca é alterado novamente durante a invocação do código. Sree Divya Akula foi gentil o suficiente para sinalizar esta questão nos comentários abaixo, e tratamento do joelho osteoartrite em ayurveda atualizamos o código aqui para corrigir este problema.

Vou apontar apenas alguns itens aqui. Podemos incluir a função de sintomas de pseudartrose format.label no topo da função createLogger e compartilhá-la entre os transportes do console e do arquivo. Como o transporte do Console usa format.colorize, devemos declarar uma função format.printf separada em cada Transport para que possamos omitir format.colorize no File transport e evitar renderizar códigos de escape ANSI em logs que são salvos em arquivos.