Skip to main content

Log chains for webserver

Project description

logngo: Python Logging Library

Overview

logngo is a versatile Python logging library designed for modern web services. It provides advanced logging capabilities including context-aware logging for request and internal tasks, automatic file rotation based on time intervals, and socket-based logging with automatic Socket.IO support.

Key Features

  • Context-Aware Logging: Log messages are tagged with a unique context, making it easier to trace logs back to specific requests or internal tasks.
  • Automatic File Rotation: Log files are automatically rotated based on configurable time intervals, helping manage log file sizes and organization.
  • Socket Logging: Real-time logging through web sockets v2 (EIO=3), with built-in support for Socket.IO.
  • Easy Integration with Web Frameworks: Designed to be easily integrated with frameworks like FastAPI.

Installation

You can install logngo via pip:

pip install logngo

Setup and Configuration

Basic Logger Setup

To set up the logger, import the Logger from logngo and configure it with your preferences:

from logngo import Logger

Logger().setup(name="test")
Logger().setup_file_handler(file_path="../log/.log", when="M", interval=1)
Logger().setup_socket_handler(url="http://localhost:8000", handshake_path="logngo/socket.io")
Logger().setup_stream_handler()

Parameters:

  • name: Name of the logging service.
  • file_path: Path to the log file.
  • when and interval: Controls the log file rotation. For instance, "M" and 1 means the file rotates every minute.
  • url: URL for the socket logging server.
  • handshake_path: Handshake path for the Socket.IO server.

Context-Aware Logging

For logging with request or task-specific contexts:

from logngo import context

# Set a unique identifier for the current context
context.set(UNIQUE_ID)

Each log message will include this unique identifier, making it easier to correlate logs with specific requests or tasks.

Socket Logging with FastAPI

To use socket logging with FastAPI, mount the socket from logngo:

from fastapi import FastAPI
from logngo import socket_ngo

app = FastAPI()

# Mount the socket logger
app.mount("logngo", socket_ngo())

This sets up an endpoint for the Socket.IO server, enabling real-time log streaming.

Usage

After setting up logngo, you can use its logger to log messages of different severities:

from logngo import Logger

# Logging an info message
Logger().logger.info("This is an info message.")

# Logging a warning message
Logger().logger.warning("This is a warning message.")

# Logging an error message
Logger().logger.error("This is an error message.")

# Logging a debug message
Logger().logger.debug("This is a debug message.")

# Logging a critical message
Logger().logger.critical("This is a critical message.")

Contributing

Contributions to logngo are welcome! Please refer to the repository's contribution guidelines for more details.

License

logngo is released under MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logngo-1.7.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

logngo-1.7-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file logngo-1.7.tar.gz.

File metadata

  • Download URL: logngo-1.7.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for logngo-1.7.tar.gz
Algorithm Hash digest
SHA256 47f564f8797d7cee310cd388dc64994489c1f6a42fcb5458dcd4824ffa7756fd
MD5 49e62373257efb4716f5bdadd3117470
BLAKE2b-256 dfc0f15b37e7b3b1468f28429ffebadd7855e02c9ca78b3caa5f24f4568fe390

See more details on using hashes here.

File details

Details for the file logngo-1.7-py3-none-any.whl.

File metadata

  • Download URL: logngo-1.7-py3-none-any.whl
  • Upload date:
  • Size: 8.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for logngo-1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7e7e250809acf8344714abcddfd2b37952c2a68739bb6e19a272d3eed6074f5e
MD5 da5f1b8afb1f4061ffe6fd7d1dff24ad
BLAKE2b-256 344595ce2f9ca107db61554f15fac91ff069069f4b8f1a781ecfdf7af1635e71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page