10 dépôts
Interfaces that allow external handlers to be plugged into a logging pipeline to redirect output.
Distinct from Hook-Based Plugin Systems: Distinct from general hook-based systems: specifically defines the plugin interface for log output destinations.
Explore 10 awesome GitHub repositories matching software engineering & architecture · Logging Destination Plugins. Refine with filters or upvote what's useful.
Timber is an extensible logging framework and wrapper for Android applications. It provides an interface that extends the standard Android logging class to enable customizable output destinations and routing logic. The system uses a tree-based dispatch model and a plugin system to direct log messages to multiple external handlers. This allows for custom log routing to external services or files based on the current environment or specific criteria. The project includes tools for monitoring and observability, specifically a performance validator that analyzes logging calls to detect inefficie
Implements an interface-based system allowing custom log destinations to be plugged into the logging pipeline.
Janus is a WebRTC media gateway that routes real-time audio, video, and data between web browsers and server-side application logic. It functions as a central media relay that manages session negotiation and encryption for multiple browser endpoints. The project utilizes a modular plugin architecture that decouples the core server from specific media logic, allowing developers to implement custom modules for media processing, event handling, and transport protocols. This design enables the server to act as a protocol translation bridge, converting WebRTC streams into legacy formats such as SI
Implements a JSON-based request and event exchange mechanism between clients and server-side plugins.
Consola is a diagnostic logging utility and log output manager that provides a unified interface for Node.js and web browser environments. It functions as a scoped logging framework and a tool for capturing user text, confirmations, and selections through interactive console prompts. The project distinguishes itself through a system for creating specialized logger instances with inherited defaults and unique tags for contextual tracking. It also features a pluggable reporter interface that allows for the redirection of standard output to custom logging destinations and external reporters. Th
Provides a pluggable reporter interface to route log data to custom external destinations.
go-plugin est un framework pour implémenter des architectures de plugins où les extensions s'exécutent en tant que processus séparés et communiquent via un système de plugin Go RPC. Il fonctionne comme une bibliothèque de communication inter-processus et un gestionnaire de cycle de vie qui permet aux applications hôtes de découvrir, lancer et surveiller des plugins binaires externes. Le framework permet des systèmes de plugins multi-langages, permettant aux plugins écrits dans différents langages de s'intégrer à un hôte via des protocoles RPC standardisés. Il dispose d'un pont RPC bidirectionnel qui permet à la fois à l'hôte et au plugin d'échanger des implémentations d'interface pour des échanges de données complexes et des rappels. Le système fournit une isolation de processus en exécutant les plugins en tant que sous-processus indépendants, garantissant que les plantages de plugins ne terminent pas l'application hôte. Il couvre la sécurité via l'authentification TLS mutuelle et la vérification d'intégrité, ainsi que l'orchestration du cycle de vie, y compris le rattachement de processus avec état pour maintenir la connectivité lors des mises à niveau de l'hôte. Les capacités supplémentaires incluent la découverte binaire, le versionnage de protocole et la synchronisation des journaux et flux de sortie des plugins vers l'hôte.
Facilitates the exchange of message sequences to handle large datasets or continuous updates.
Zed is a terminal-based code editor built in Rust that provides a full-featured editing experience with familiar keybindings, mouse support, and multiple cursors. It runs entirely in the terminal while offering capabilities typically found in graphical editors, including split panes, a command palette, and integrated language server protocol support for real-time diagnostics, completions, go-to-definition, and code actions across multiple languages. The editor distinguishes itself through a plugin system that runs sandboxed TypeScript plugins in a QuickJS runtime, with an asynchronous bridge
Zed records error, warning, or info messages from a plugin to the editor's log file for debugging and monitoring.
Vibora est un framework web Python asynchrone et un serveur HTTP intégré conçu pour construire des applications web haute performance. Il utilise une boucle d'événements asynchrone et des coroutines pour traiter les requêtes réseau et servir les réponses sans nécessiter de wrappers de serveur externes. Le projet propose un validateur de schéma asynchrone haute performance pour l'intégrité des requêtes, un moteur de template non bloquant avec prise en charge du rechargement à chaud, et un serveur de communication WebSocket pour l'échange de données bidirectionnel en temps réel. Le framework couvre un large éventail de capacités, notamment la gestion modulaire des routes via des blueprints, l'injection de dépendances pour les composants d'application et l'analyse HTTP zéro-copie. Il fournit également des outils pour la gestion des sessions utilisateur, le rendu HTML asynchrone et un client HTTP non bloquant avec pooling de connexions. Une interface en ligne de commande est disponible pour le bootstrapping de projet afin de générer des structures de répertoire standardisées et des fichiers de configuration initiaux.
Allows the definition of custom handlers to process system log messages using standard logging levels.
EasyLogger est une bibliothèque de journalisation C/C++ légère et un framework asynchrone conçu pour les systèmes embarqués, les appareils IoT et les objets connectés. Il fonctionne comme un logger efficace en ressources et un gestionnaire de mémoire flash, fournissant des outils pour le débogage bas niveau et l'enregistrement d'événements système avec des besoins minimaux en ROM et RAM. Le projet se distingue par un modèle de journalisation asynchrone qui met en mémoire tampon les messages dans un thread séparé, empêchant les opérations de journalisation de bloquer l'exécution de l'application en temps réel. Il inclut un gestionnaire de mémoire flash spécialisé qui utilise une mémoire tampon circulaire pour conserver les journaux dans un stockage non volatil, garantissant que les données critiques sont préservées lors des redémarrages de l'appareil. La bibliothèque couvre un large éventail de capacités d'observabilité, notamment les assertions système pour la validation d'état, le filtrage de sévérité à la compilation et à l'exécution, et la génération de dumps hexadécimaux binaires bruts. Elle prend en charge l'enrichissement des métadonnées avec des horodatages et des identifiants de thread, ainsi qu'une interface portable pour acheminer les journaux vers des destinations personnalisées telles que des ports série ou des fichiers. Le système garantit l'intégrité des données grâce à la synchronisation des écritures et fournit des mécanismes pour le vidage manuel des tampons et la récupération des journaux stockés.
Provides a portable interface for plugging in custom output destinations such as serial ports or files.
Yabridge is a compatibility bridge that allows Windows audio plugins to run within Linux digital audio workstations. It utilizes a Wine-based wrapper to translate audio processing and plugin calls from Windows plugins to Linux hosts, supporting both VST2 and VST3 standards. The system manages the execution of both 32-bit and 64-bit Windows plugins on Linux. It includes specialized mechanisms to handle window scaling, input focus, and the transfer of data through cross-environment drag-and-drop between native Linux applications and Windows plugins. The project provides tools for environment i
Captures debug messages and system output from plugins to files for diagnostic purposes.
MadelineProto is an asynchronous PHP library that provides a programmatic interface for interacting with the Telegram API using the MTProto protocol, the same protocol used by official Telegram clients. It functions as both a Telegram bot SDK and a userbot automation library, enabling PHP applications to connect to Telegram as either a bot account or a regular user account, sending and receiving messages, media, and other data directly without relying on the Bot API intermediary. The library is built on an event-driven architecture with Amp v3 fiber-based concurrency, allowing for non-blockin
Sends log entries at configurable verbosity levels to a file or other destination defined in settings.
open62541 is an open-source implementation of the OPC Unified Architecture standard, providing a complete stack for industrial automation and data exchange. It functions as both an OPC UA server and client, enabling the creation of an object-oriented address space to model physical industrial assets and their relationships. The project is designed for versatility across diverse hardware, offering a C99 library that can be deployed to both cloud servers and resource-constrained embedded environments. It distinguishes itself through a pluggable network layer and interface-based security backend
Provides a plugin interface to redirect internal system logs to custom output destinations.