"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Registrando práticas recomendadas para seu aplicativo Node.js

Registrando práticas recomendadas para seu aplicativo Node.js

Publicado em 23/08/2024
Navegar:786

Logging Best Practices For Your Node.js App

Como desenvolvedor Node.js, o log é praticamente tudo quando se trata de depuração, monitoramento e manutenção de seus aplicativos. Mas você está usando as práticas recomendadas de registro? Vamos explorar algumas técnicas de registro que podem levar seus aplicativos Node.js para o próximo nível.

Para saber mais, você pode conferir a postagem completa do blog.

1. Winston: o canivete suíço da extração madeireira

? Ferramenta: Winston
? Descrição: uma biblioteca de registro versátil para Node.js
? Principais recursos:

  • Várias opções de transporte (console, arquivo, banco de dados)
  • Níveis de registro personalizáveis
  • Suporta registro em vários formatos (JSON, texto simples)
javascriptCopyconst winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

2. Morgan: Middleware do registrador de solicitações HTTP

? Ferramenta: Morgan
? Descrição: simplifica o registro de solicitações HTTP em Express.js
? Principais recursos:

  • Formatos de registro predefinidos
  • Suporte a tokens personalizados
  • Fácil integração com Express.js
javascriptCopyconst express = require('express');
const morgan = require('morgan');

const app = express();
app.use(morgan('combined'));

3. Bunyan: registro JSON para Node.js

? Ferramenta: Bunyan
? Descrição: registro JSON estruturado para aplicativos Node.js
? Principais recursos:

  • Formato de log JSON por padrão
  • Suporta registradores infantis
  • CLI integrada para visualização de registros
javascriptCopyconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});

log.info("Hi");
log.warn({lang: 'fr'}, "Au revoir");

4. Pino: Registrador Node.js super rápido

? Ferramenta: Pino
? Descrição: registro em log de baixa sobrecarga com saída JSON
? Principais recursos:

  • Desempenho extremamente rápido
  • Rotação automática de registros
  • Suporta registradores infantis
javascriptCopyconst pino = require('pino');
const logger = pino();

logger.info('hello world');
logger.error('this is at error level');

5. depurar: Utilitário de depuração minúsculo

? Ferramenta: depuração
? Descrição: pequeno utilitário de depuração para Node.js
? Principais recursos:

  • Leve e simples de usar
  • Depuração seletiva com namespaces
  • Suporte ao navegador
javascriptCopyconst debug = require('debug')('http');

debug('booting %o', name);

6. Log4js: registro flexível para JavaScript

? Ferramenta: Log4js
? Descrição: Uma conversão da estrutura log4j para JavaScript
? Principais recursos:

  • Níveis de registro hierárquico
  • Vários anexadores de saída
  • Layouts configuráveis
javascriptCopyconst log4js = require("log4js");
log4js.configure({
  appenders: { cheese: { type: "file", filename: "cheese.log" } },
  categories: { default: { appenders: ["cheese"], level: "error" } }
});

const logger = log4js.getLogger("cheese");
logger.error("Cheese is too ripe!");

7. Elasticsearch, Logstash e Kibana (ELK Stack)

? Ferramenta: Pilha ELK
? Descrição: Uma combinação poderosa para gerenciamento e análise de logs
? Principais recursos:

  • Registro centralizado
  • Análise de registros em tempo real
  • Visualizações e painéis
javascriptCopyconst winston = require('winston');
const Elasticsearch = require('winston-elasticsearch');

const esTransportOpts = {
  level: 'info',
  clientOpts: { node: 'http://localhost:9200' }
};
const logger = winston.createLogger({
  transports: [
    new Elasticsearch(esTransportOpts)
  ]
});

8. Sentry: Rastreamento de Erros e Monitoramento de Desempenho

? Ferramenta: Sentinela
? Descrição: rastreamento de erros e monitoramento de desempenho em tempo real
? Principais recursos:

  • Captura automática de erros
  • Rastreamento de lançamento
  • Monitoramento de desempenho
javascriptCopyconst Sentry = require("@sentry/node");

Sentry.init({ dsn: "https://[email protected]/0" });

try {
  someFunction();
} catch (e) {
  Sentry.captureException(e);
}

9. New Relic: Monitoramento de desempenho de aplicativos

? Ferramenta: Nova Relíquia
? Descrição: Monitoramento abrangente de desempenho de aplicativos
? Principais recursos:

  • Métricas de desempenho em tempo real
  • Análise de erros
  • Instrumentação personalizada
javascriptCopyconst newrelic = require('newrelic');

newrelic.setTransactionName('myCustomTransaction');
// Your application code here

10. Loggly: gerenciamento de log baseado em nuvem

? Ferramenta: Loggly
? Descrição: serviço de gerenciamento e análise de logs baseado em nuvem
? Principais recursos:

  • Gerenciamento centralizado de registros
  • Pesquisa e análise de registros em tempo real
  • Painéis e alertas personalizados
javascriptCopyconst winston = require('winston');
const { Loggly } = require('winston-loggly-bulk');

winston.add(new Loggly({
    token: "YOUR-TOKEN",
    subdomain: "YOUR-SUBDOMAIN",
    tags: ["Winston-NodeJS"],
    json: true
}));

winston.log('info', "Olá mundo do Node.js!");

Dica bônus: registro estruturado

Independentemente da ferramenta escolhida, a implementação de registros estruturados pode melhorar muito seus recursos de análise de registros:

javascriptCopylogger.info({
  event: 'user_login',
  userId: user.id,
  timestamp: new Date().toISOString(),
  ipAddress: req.ip
});

Ao usar essas ferramentas e práticas adicionais, você terá uma estratégia de registro abrangente que cobre tudo, desde depuração básica até monitoramento avançado de desempenho de aplicativos. Lembre-se de que a chave para um registro eficaz é escolher as ferramentas certas para suas necessidades específicas e aplicar consistentemente as melhores práticas em toda a sua base de código.

Se precisar de ajuda para depurar seu aplicativo da web, confira https://alerty.ai para saber mais sobre o monitoramento fácil de front-end.

Bom registro e que seus aplicativos Node.js funcionem perfeitamente! ??

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/alertyai/logging-best-practices-for-your-nodejs-app-4o9k?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3