À propos du projet
Le package `@oresoftware/next-loggers` fournit une solution de journalisation structurée canonique, sans dépendance, uniquement ESM, conçue pour les environnements JavaScript et TypeScript modernes, y compris Next.js, les navigateurs, Cloudflare Workers, Node.js, Bun et Deno. Il met l'accent sur la sécurité, la sérialisation et les mécanismes de transport flexibles.
**Fonctionnalités clés :**
- **Prise en charge polyglotte :** Comprend des SDK natifs pour Python, Go, Rust, Java, Dart, Ruby, Erlang et Elixir, émettant tous un format filaire strict `next-loggers/v1`.
- **Transports :** Prend en charge les points de terminaison HTTP, les WebSockets Supabase Realtime et les sidecars OpenTelemetry (OTLP) pour Kubernetes et Cloud Run. Des transports personnalisés sont facilement mis en œuvre via une interface simple.
- **API chainable :** Les événements de journalisation sont chainables, permettant l'enrichissement avec des traces, des étiquettes, des champs et du contexte avant l'envoi. Un plugin ESLint impose des appels explicites `.send()` pour empêcher les journaux manqués.
- **Sécurité et rédaction :** Rédige automatiquement les clés sensibles (mots de passe, jetons, etc.) et normalise les structures de données complexes (références circulaires, erreurs, entiers longs) pour une sérialisation sécurisée.
- **Spécificités du runtime :** Offre des points d'entrée spécialisés pour différents runtimes (par exemple, `createCloudflareWorkerLogger` ajoute des propriétés `rayId` et géographiques). Il gère l'isolement du contexte asynchrone via `AsyncLocalStorage` là où cela est pris en charge, avec des solutions de contournement claires pour les environnements comme Cloudflare Workers sans drapeaux spécifiques.
- **Arrêt et fiabilité :** Implémente des drains de cycle de vie coordonnés pour les navigateurs (`pagehide`, `sendBeacon`) et Node/Bun/Deno (`SIGTERM`, `beforeExit`) pour garantir que les journaux sont vidés avant la fin du processus. Comprend des limites de sérialisation pour empêcher les charges utiles trop volumineuses de planter les processus.
- **CLI et configuration :** Est livré avec un CLI `next-loggers` pour les diagnostics (`doctor`, `resolve`, `smoke`) et prend en charge la configuration via des fichiers `.next-logger.ts` ou des variables d'environnement.
Cette bibliothèque convient aux applications nécessitant une observabilité robuste et multiplateforme avec des garanties fortes sur l'intégrité et la confidentialité des données.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.