Metadata-Version: 2.4
Name: lognitor
Version: 1.0.2
Summary: Lognitor SDK for Python — log management, error tracking, and monitoring
Author: Lognitor Inc.
License: Proprietary
Project-URL: Homepage, https://lognitor.com
Project-URL: Documentation, https://docs.lognitor.com/python
Project-URL: Repository, https://github.com/grenzpro/lognitor-python
Project-URL: Issues, https://github.com/grenzpro/lognitor-python/issues
Keywords: logging,error-tracking,monitoring,lognitor,observability
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
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 :: System :: Logging
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# lognitor

Official Lognitor SDK for Python — log management, error tracking, and monitoring.

## Install

```bash
pip install lognitor
```

## Quick Start

```python
import lognitor

lognitor.init(
    api_key="your-api-key",
    service="my-python-app",
    environment="production",
)

lognitor.info("Server started", metadata={"port": 8000})
```

## Log Levels

```python
lognitor.debug("Cache miss", metadata={"key": "user:123"})
lognitor.info("Order created", metadata={"order_id": "ord_456"})
lognitor.warn("Rate limit approaching")
lognitor.error("Payment failed", error=ValueError("Card declined"))
lognitor.fatal("Database corrupted")
```

## Error Tracking

```python
try:
    process_payment(order)
except Exception as e:
    lognitor.capture_exception(e, metadata={"order_id": order.id})
```

## User Context

```python
lognitor.set_user({"id": "user_123", "email": "alice@example.com"})
lognitor.clear_user()
```

## Framework Integrations

### Django

```python
# settings.py
MIDDLEWARE = ["lognitor.integrations.django.LognitorMiddleware", ...]
LOGNITOR = {"api_key": "your-key", "service": "my-django-app", "environment": "production"}
```

### Flask

```python
from lognitor.integrations.flask import init_app
client = init_app(app, api_key="your-key", service="my-flask-app")
```

### FastAPI

```python
from lognitor.integrations.fastapi import LognitorMiddleware
app.add_middleware(LognitorMiddleware, api_key="your-key", service="my-fastapi-app")
```

## Configuration

| Option | Default | Description |
|---|---|---|
| `api_key` | *required* | Project API key |
| `service` | `None` | Service name |
| `environment` | `None` | Environment |
| `batch_size` | `25` | Logs per batch |
| `flush_interval` | `5.0` | Auto-flush interval (seconds) |
| `max_retries` | `3` | Retry count |
| `min_level` | `None` | Minimum level to send |
| `redact_patterns` | `[]` | PII patterns to redact |
| `before_send` | `None` | Transform/filter callback |

## More

- Child loggers: `lognitor.child(service="payments")`
- Timers: `t = lognitor.start_timer(); t.end("Done")`
- Heartbeat: `lognitor.heartbeat("token").wrap(lambda: job())`
- Releases: `lognitor.register_release(version="2.0")`
- Python logging bridge: `from lognitor.logging_handler import LogHandler`

Full documentation: [docs.lognitor.com](https://docs.lognitor.com)

## Compatibility

Python 3.8+. No external dependencies.
