Metadata-Version: 2.4
Name: jazzmine-logging
Version: 0.1.0
Summary: Flexible, production-ready logging library with support for 15+ sinks and async operations
Project-URL: Homepage, https://github.com/nourmedini1/jazzmine-logging
Project-URL: Repository, https://github.com/nourmedini1/jazzmine-logging
Project-URL: Documentation, https://github.com/nourmedini1/jazzmine-logging#readme
Project-URL: Issues, https://github.com/nourmedini1/jazzmine-logging/issues
Project-URL: Changelog, https://github.com/nourmedini1/jazzmine-logging/releases
Author-email: Mohamed Nour Medini <mohamednour.medini@etudiant-isi.utm.tn>
License: MIT
License-File: LICENSE
Keywords: async,cloudwatch,datadog,kafka,logging,monitoring,observability,redis,sentry,structured-logging
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Logging
Classifier: Topic :: System :: Monitoring
Requires-Python: >=3.8
Requires-Dist: aiohttp>=3.13.3
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: requests>=2.32.5
Requires-Dist: structlog>=25.5.0
Provides-Extra: all
Requires-Dist: aiokafka>=0.8.0; extra == 'all'
Requires-Dist: boto3>=1.26.0; extra == 'all'
Requires-Dist: google-cloud-pubsub>=2.0.0; extra == 'all'
Requires-Dist: kafka-python>=2.0.0; extra == 'all'
Requires-Dist: libhoney>=2.0.0; extra == 'all'
Requires-Dist: redis>=5.0.0; extra == 'all'
Requires-Dist: sentry-sdk>=1.0.0; extra == 'all'
Provides-Extra: aws
Requires-Dist: boto3>=1.26.0; extra == 'aws'
Provides-Extra: gcp
Requires-Dist: google-cloud-pubsub>=2.0.0; extra == 'gcp'
Provides-Extra: honeycomb
Requires-Dist: libhoney>=2.0.0; extra == 'honeycomb'
Provides-Extra: kafka
Requires-Dist: aiokafka>=0.8.0; extra == 'kafka'
Requires-Dist: kafka-python>=2.0.0; extra == 'kafka'
Provides-Extra: redis
Requires-Dist: redis>=5.0.0; extra == 'redis'
Provides-Extra: sentry
Requires-Dist: sentry-sdk>=1.0.0; extra == 'sentry'
Description-Content-Type: text/markdown

# Jazzmine Logging

A flexible, production-ready logging library for Python with support for multiple sinks and async operations.

## Features

- **Multiple Sinks**: Support for 15+ logging destinations
- **Async Support**: Async logging with `aiohttp` and async sink implementations
- **Flexible Configuration**: YAML/JSON-based configuration or just pass in a string
- **Context Management**: Request context tracking
- **Optional Dependencies**: Install only what you need

## Installation

### Basic Installation
```bash
pip install jazzmine-logging
```

### With Optional Sinks
```bash
# Individual sinks
pip install jazzmine-logging[sentry]
pip install jazzmine-logging[kafka]
pip install jazzmine-logging[redis]
pip install jazzmine-logging[honeycomb]
pip install jazzmine-logging[aws]
pip install jazzmine-logging[gcp]

# All sinks
pip install jazzmine-logging[all]
```

## Supported Sinks

### HTTP-Based Sinks
- **Datadog** - Datadog HTTP API
- **Loki** - Grafana Loki
- **New Relic** - New Relic Logs API
- **Logstash** - Elastic Logstash HTTP input

### Cloud Provider Sinks
- **CloudWatch** - AWS CloudWatch Logs (requires `aws` extra)
- **Pub/Sub** - Google Cloud Pub/Sub (requires `gcp` extra)

### Message Queue Sinks
- **Kafka** - Apache Kafka (requires `kafka` extra)
- **Redis** - Redis Streams (requires `redis` extra)

### Observability Platforms
- **Sentry** - Error tracking (requires `sentry` extra)
- **Honeycomb** - Observability platform (requires `honeycomb` extra)

### Agent-Based Sinks
- **Vector** - Vector HTTP sink
- **Fluent Bit** - Fluent Bit HTTP input
- **Promtail** - Grafana Promtail
- **Graylog** - GELF format (HTTP/UDP/TCP)

## Quick Start

```python
from jazzmine.logging import BaseLogger

# Initialize logger
logger = BaseLogger.from_config('logging_config.yaml')

# Log messages
logger.info('Application started')
logger.error('Something went wrong', extra={'user_id': 123})

# Async logging
await logger.alog('info', 'Async log message')
```

## Configuration Example

```yaml
logger_name: my_app
level: INFO

sinks:
  - type: datadog
    api_key: your_api_key
    site: datadoghq.com
    
  - type: sentry
    dsn: your_sentry_dsn
    environment: production
```

## License

MIT License - see [LICENSE](LICENSE) file for details.

## Part of the Jazzmine Ecosystem

This package is part of the Jazzmine framework. Check out other packages:
- `jazzmine-security` - Security utilities
- `jazzmine-monitoring` - Monitoring and metrics
