Skip to content

Latest commit

 

History

History
166 lines (120 loc) · 3.79 KB

File metadata and controls

166 lines (120 loc) · 3.79 KB

logging_monitoring - Functional Specification

Version: v1.2.3 | Status: Active | Last Updated: March 2026

Purpose

Foundation module providing centralized logging infrastructure for the Codomyrmex platform. Implements unified logging system with consistent formatting, configurable output destinations, and proper log level management.

Design Principles

Modularity

  • Self-contained logging system
  • Clear interface boundaries
  • Minimal external dependencies
  • Composable logging components

Internal Coherence

  • Consistent log formatting
  • Unified configuration interface
  • Standardized log levels
  • Logical component organization

Parsimony

  • Essential logging features only
  • Minimal configuration surface
  • Direct implementations
  • Focus on core functionality

Functionality

  • Working logging system
  • Practical configuration options
  • Current best practices
  • Reliable log delivery

Testing

  • Comprehensive test coverage
  • Configuration validation tests
  • Output format verification
  • Integration testing

Documentation

  • Clear API documentation
  • Configuration examples
  • Usage patterns
  • Complete specifications

Architecture

graph TD
    subgraph sg_b332c3492d [Configuration]
        EnvVars[Environment Variables]
        ConfigFile[Configuration File]
    end

    subgraph sg_d155bc7da9 [Core System]
        Setup[setup_logging()]
        GetLogger[get_logger()]
        LogContext[LogContext]
    end

    subgraph sg_e5d5a0063a [Output Layer]
        Console[Console Handler]
        File[File Handler]
        JSON[JSONFormatter]
        Text[Text Formatter]
    end

    EnvVars --> Setup
    ConfigFile --> Setup
    Setup --> GetLogger
    GetLogger --> LogContext
    Setup --> Console
    Setup --> File
    Console --> JSON
    Console --> Text
    File --> JSON
    File --> Text
Loading

Functional Requirements

Core Capabilities

  1. Logging Setup: Initialize and configure logging system
  2. Logger Factory: Provide logger instances for modules
  3. Structured Logging: JSON format for machine-readable logs
  4. Text Logging: Human-readable text format
  5. Context Management: Correlation IDs and context injection

Configuration

  • Environment variable configuration
  • Optional configuration file support
  • Log level management
  • Output destination control

Quality Standards

Code Quality

  • Type hints for all functions
  • Clear error handling
  • PEP 8 compliance
  • Comprehensive docstrings

Testing Standards

  • ≥80% test coverage
  • Configuration validation tests
  • Output format verification
  • Integration tests

Documentation Standards

  • Complete API documentation
  • Configuration examples
  • Usage patterns
  • Integration guides

Interface Contracts

Public API

  • setup_logging() - Initialize logging system with support for "TEXT" and "JSON" outputs.
  • get_logger(name) - Get logger instance.
  • JSONFormatter - Standardized JSON log formatter (legacy JsonFormatter alias removed).
  • log_with_context() - Log with structured context.
  • LogContext - Context manager for correlation IDs.

Configuration Interface

  • Environment variables: CODOMYRMEX_LOG_*
  • Optional configuration file
  • Standard Python logging integration

Implementation Guidelines

Usage Patterns

  1. Call setup_logging() at application start
  2. Use get_logger(__name__) in modules
  3. Use LogContext for request tracing
  4. Configure via environment variables

Integration

  • All modules depend on this module
  • Foundation layer service
  • Minimal dependencies
  • Stable API

Navigation