Skip to main content

LogReel

GitHub Actions Workflow Status codecov PyPI - Python Version PyPI - Downloads GitHub License

An open-source logging utility for reliable API-to-API log transport with modular plugin support.

LogReel is authored by Simone Roma, governed as a benevolent dictatorship, and distributed under license.

Introduction

In modern SaaS applications, logging is fundamentally different from traditional logging systems. SaaS applications expose APIs that must be periodically scraped to collect data, which is then stored in a logging system. Given the critical importance of logging for security and operational monitoring, any API logging service must ensure reliability and prevent data loss—even when remote systems experience temporary outages.

LogReel is a logging utility that simplifies API-based logging by fetching data from a source API and forwarding it to a destination API. It uses a cursor-based tracking mechanism to maintain continuity and prevent data duplication or loss. With its plugin-based architecture, users can easily create custom plugins to connect to different APIs, allowing LogReel to handle the continuous data collection and delivery.

Features

  • Reliable API Logging, tracks the last successful fetch with a cursor-based mechanism.
  • Plugin Architecture, allows users to implement their own plugins for source and destination APIs.
  • Continuous Execution, executes user-defined plugins in a continuous loop for real-time logging.
  • Containerised Deployment, deployable using Compose or Kubernetes for scalability and IaC integration.

Installation

Install using pip install logreel or poetry add logreel

Quickstart

  1. Create your LogReel user environment repo

  2. Add the logreel package from pypi as a dependency

  3. Define your plugins that implement the corresponding base classes

    from logreel import SourcePlugin, DestinationPlugin
    
    class MySourcePlugin(SourcePlugin):
        ...
    
    class MyDestinationPlugin(DestinationPlugin):
        ...
    
    1. Register the plugins using corresponding entrypoints and explicitly include the plugins packages
      # pyproject.toml - example using Poetry
      
      [tool.poetry]
      ...
      
      packages = [
         { include = "plugins/source" },
         { include = "plugins/destination" }
      ]
      
      [tool.poetry.dependencies]
      logreel = "^0.2.0"
      ...
      
      [tool.poetry.plugins."logreel.sources"]
      my_source_plugin = "module_path:MySourcePlugin"
      
      [tool.poetry.plugins."logreel.destinations"]
      my_destination_plugin = "module_path:MyDestinationPlugin"
      
  4. Create a docker compose file to run the service, using environment variables to specify the plugin names and parameters.

    services:
      logreel_mysource_to_mydestination:
        build:
          context: .
        restart: always
        environment:
          - SOURCE_PLUGIN=my_source_plugin
          - DESTINATION_PLUGIN=my_destination_plugin
          - OTHER_PLUGIN_PARAMS_FOO=${FOO}
    

Versioning

Releases will follow semantic versioning (major.minor.patch). Before 1.0.0 breaking changes can be included in a minor release, therefore we highly recommend pinning this package.

Contributing

Suggest a feature or report a bug. Read our developer guide.

License

LogReel is distributed under the Apache 2.0 license.

Metadata

Release files for logreel 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for logreel 0.2.4
File Interpreter ABI Platform
logreel-0.2.4-py3-none-any.whl Python 3 none any Details

Release files / logreel-0.2.4-py3-none-any.whl

Download URL logreel-0.2.4-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ec40abbfed86384f6eb4b6ee8dbfb92caabd3b3f2c17fff935f4c26091ddfe2d
BLAKE2b-256 checksum
How to use checksums
5df3662c44e3f7eae0484ea9ec4dbcde3e35e6ac8e052e97b6f1f34f25d76df6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Security for logreel 0.2.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page