horus-lib
v1.0.3
Published
Horus JS é uma biblioteca de logging para aplicações Node.js, com foco especial em aplicações Fastify. Ela fornece funcionalidades avançadas de logging de requisições HTTP, incluindo captura de corpo de requisição/resposta, cabeçalhos, parâmetros de consu
Readme
Horus JS
Horus JS é uma biblioteca de logging para aplicações Node.js, com foco especial em aplicações Fastify. Ela fornece funcionalidades avançadas de logging de requisições HTTP, incluindo captura de corpo de requisição/resposta, cabeçalhos, parâmetros de consulta e muito mais.
Características
- Logging detalhado de requisições HTTP
- Suporte para Fastify como plugin
- Configuração flexível de logging
- Mascaramento automático de dados sensíveis
- Suporte para diferentes tipos de conteúdo
- Logging de exceções e erros
- Integração com a API Horus para armazenamento de logs
Instalação
npm install horus-lib
# ou
yarn add horus-lib
# ou
pnpm add horus-libUso com Fastify
import Fastify from "fastify";
import { fastifyLogger } from "horus-lib";
const fastify = Fastify({ logger: true });
// Registre o plugin
await fastify.register(fastifyLogger, {
clientId: "seu-client-id",
projectId: "seu-project-id",
apiUrl: "https://horus-api.vercel.app", // URL da API Horus (opcional)
requestLoggingConfig: {
enabled: true,
logQueryParams: true,
logRequestHeaders: true,
logRequestBody: true,
logResponseHeaders: true,
logResponseBody: true,
logException: true,
},
});
// Suas rotas aqui
fastify.get("/", async (request, reply) => {
return "Hello World!";
});
await fastify.listen({ port: 3000 });Configuração
O plugin fastifyLogger aceita as seguintes opções:
LoggerOptions
| Opção | Tipo | Descrição | | -------------------- | -------------------- | ------------------------------------------ | | clientId | string | ID do cliente para identificação | | projectId | string | ID do projeto para identificação | | apiUrl | string | URL da API Horus (opcional) | | requestLoggingConfig | RequestLoggingConfig | Configuração de logging de requisições |
RequestLoggingConfig
| Opção | Tipo | Padrão | Descrição | | ------------------ | ------- | ------- | ------------------------------------------------- | | enabled | boolean | false | Habilita o logging de requisições | | logQueryParams | boolean | true | Habilita o logging de parâmetros de consulta | | logRequestHeaders | boolean | false | Habilita o logging de cabeçalhos de requisição | | logRequestBody | boolean | false | Habilita o logging de corpo de requisição | | logResponseHeaders | boolean | true | Habilita o logging de cabeçalhos de resposta | | logResponseBody | boolean | false | Habilita o logging de corpo de resposta | | logException | boolean | false | Habilita o logging de exceções |
API Horus
O Horus JS se integra com a API Horus para armazenar os logs de forma centralizada. A API Horus fornece endpoints para:
- Armazenar informações de rotas
- Armazenar logs de requisições
- Armazenar logs de corpo de requisições
Endpoints da API
POST /projects/:projectId/routes- Armazena informações de rotasPOST /projects/:projectId/logs- Armazena logs de requisiçõesPOST /projects/:projectId/logs/body- Armazena logs de corpo de requisições
Autenticação
A API Horus utiliza o cabeçalho X-Client-Id para autenticação. O valor deste cabeçalho deve ser o mesmo que o clientId fornecido na configuração do plugin.
Desenvolvimento
Requisitos
- Node.js 16+
- pnpm (recomendado) ou npm ou yarn
Scripts
# Instalar dependências
pnpm install
# Construir o projeto
pnpm build
# Formatar o código
pnpm format
# Executar em modo de desenvolvimento
pnpm devLicença
MIT
