Metadata-Version: 2.4
Name: mtk_logger
Version: 0.5.0
Summary: Logging utilities for Python applications
Author: Patrick Prasquier
Author-email: pprasquier@odm-tech.com
Requires-Python: >=3.12,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: fastapi[all] (>=0.115.0,<0.116.0)
Requires-Dist: prefy (>=1.4.1,<2.0.0)
Project-URL: Repository, https://github.com/pprasquier/mtk_logger
Description-Content-Type: text/markdown

# MTK Logger

Logging utilities for MarkTrack applications.

## Installation

To install from GitHub Packages:

```bash
# Configure pip to use GitHub Packages
pip config set global.extra-index-url https://YOUR_GITHUB_TOKEN@github.com/pprasquier/mtk_logger/raw/main/dist/

# Install the package
pip install mtk_logger
```

Or with Poetry:

```bash
# Add GitHub Packages as a source
poetry source add --priority=supplemental github https://github.com/pprasquier/mtk_logger/raw/main/dist/

# Install the package
poetry add mtk_logger
```

## Usage

Default import (optional `settings_dir`; defaults to `"settings_files"` for backwards compatibility):

```python
from mtk_logger import get_logger

logger = get_logger(__name__)
logger.info("This is a log message")
```

Custom Prefy settings directory (same pattern as `Preferences(settings_dir)` elsewhere):

```python
from mtk_logger import get_logger

logger = get_logger(__name__, settings_dir="backend/settings/app")
```

Structured JSON logs (`log_format` = `json` in Prefy) include any keys you set on `CorrelationContext`:

```python
from mtk_logger import CorrelationContext, get_logger

logger = get_logger(__name__, settings_dir="path/to/settings")
CorrelationContext.set("cycle_id", "cyc-abc")
CorrelationContext.set("job_id", "job-123")  # vendor-neutral: any string keys
logger.info("doing work")
```

Exports: `MTKLogger`, `get_logger`, `CorrelationContext`, `JSONFormatter`.

## FastAPI middleware

```python
from mtk_logger.fastapi_middleware import RequestLoggingMiddleware

app.add_middleware(RequestLoggingMiddleware)
```

With a custom settings directory (matches `get_logger(..., settings_dir=...)`):

```python
from mtk_logger.fastapi_middleware import RequestLoggingMiddleware

app.add_middleware(RequestLoggingMiddleware, settings_dir="backend/settings/app")
```

See `settings_example.json` for Prefy keys: `log_dir`, `log_format`, `process_name`, etc.

