Skip to main content

A simple Python logging library for chat applications

Project description

OSH Logger

A simple Python logging library for chat applications, with support for both local development and Google Cloud Platform (GCP) environments.

Features

  • Dual Environment Support: Automatically detects and configures logging for local development and GCP environments
  • Colored Local Output: Beautiful, colored terminal output with proper text wrapping in local development environment
  • Structured GCP Logging: Labelled logs and structured output on GCP, with ability to filter by a Logger instance's name
  • Thread-Safe: Supports logging with thread IDs for concurrent applications
  • Configurable Timestamps: Enable/disable timestamps as needed

Installation

Basic Installation

pip install oshtools

With Google Cloud Support

pip install oshtools[gcp]

Quick Start

from osh import Logger

# Create a separate logger instance for each module
logger = Logger("main")

# Pass in a thread ID to the contructor
# The thread ID is a unique identifier that can help trace requests on GCP
logger = Logger("utils", "123")

# Basic logging
logger.log("Application started")
logger.info("Processing complete")
logger.debug("Debug information")
logger.warn("Warning message")
logger.error("Error occurred")

# Log and add a thread ID dynamically
logger.log("Processing request", thread_id="thread-123")

# Structured logging (useful for GCP)
logger.struct_log("User action", user_id="123", action="login", level=logging.INFO)

Environment Detection

The logger automatically detects the environment:

  • GCP Environment: Detected by presence of K_SERVICE or GOOGLE_CLOUD_PROJECT environment variables
  • Local Environment: Uses colored terminal output with proper formatting

Log Types

The logger supports several log types with different colors and levels:

  • log() - General information (cyan)
  • info() - Informational messages (blue)
  • runtime() - Runtime information (bright magenta)
  • think() - Thinking/processing logs (light blue)
  • debug() - Debug information (green)
  • warn() - Warnings (yellow)
  • error() - Errors (red)
  • critical() - Critical errors (bright red)

Configuration

Timestamps

logger = Logger("my-app")
logger.set_timestamps(False)  # Disable timestamps
logger.set_timestamps(True)   # Enable timestamps

Log Levels

import logging
logger = Logger("my-app", level=logging.DEBUG)

Google Cloud Platform Integration

When running in GCP (Cloud Run, App Engine, etc.), the logger automatically:

  • Uses Google Cloud Logging handlers
  • Adds structured metadata and labels
  • Includes logger names and thread IDs in labels
  • Maintains local CLI formatting for debugging

Requirements

  • Python 3.8+
  • google-cloud-logging (optional, for GCP support)

License

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

oshtools-0.1.3.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

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

oshtools-0.1.3-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file oshtools-0.1.3.tar.gz.

File metadata

  • Download URL: oshtools-0.1.3.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oshtools-0.1.3.tar.gz
Algorithm Hash digest
SHA256 303335496b6510cebaeae0e707403cc92d72deff82c13161bfc3b0b993310404
MD5 1967df82575291592d2485f476fd12e3
BLAKE2b-256 9d733b20baedbe78f5ccff4d2c3123190aec7a6b585cd02d6f290e509c0dec40

See more details on using hashes here.

Provenance

The following attestation bundles were made for oshtools-0.1.3.tar.gz:

Publisher: python-publish.yml on zion-off/oshtools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oshtools-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: oshtools-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for oshtools-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4fd0c05b0cf23de7b056ad82854a43a3698f2804502e3c7bedf23b0101d3faec
MD5 c09d59cb9253b0418c273ee153b1389e
BLAKE2b-256 1756661f690475d30b7e1be7e5670725f5cd1ba10d7ebf8e46852bb86449fbbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for oshtools-0.1.3-py3-none-any.whl:

Publisher: python-publish.yml on zion-off/oshtools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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