Metadata-Version: 2.4
Name: robin-local-logger
Version: 0.1.1
Summary: A local file logger with automatic size trimming and standalone server support.
License: MIT
Keywords: fastapi,logging,json-logs,local-storage
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: FastAPI
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: fastapi>=0.95.0
Requires-Dist: uvicorn>=0.18.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: httpx; extra == "dev"
Requires-Dist: uvicorn; extra == "dev"

# robin_local_logger

Librería de Python para logging local con rotación automática por tamaño (MB) e integración directa con FastAPI mediante rutas JSON protegidas.

## Características
- **Rotación por espacio:** Elimina las líneas más antiguas cuando el archivo supera el límite de MB definido.
- **Formato JSON:** Todos los logs se guardan y entregan como objetos JSON estructurados.
- **Integración FastAPI:** Monta automáticamente `/robin/logs` para lectura y escritura.
- **Seguridad:** Soporte opcional para API Key mediante el header `X-API-Key`.
- **Captura automática:** Captura logs del sistema (Uvicorn/FastAPI).

## Instalación
```bash
pip install robin-local-logger
```

## Uso Standalone (Sin servidor propio)
Si no usas FastAPI en tu proyecto, Robin puede iniciar su propio servidor para que puedas ver y registrar logs:

```python
from robin_local_logger import init_robin_logger

# Esto inicia un servidor FastAPI interno en el puerto 8000
init_robin_logger(
    log_file="./logs/sistema.log", 
    port=8000, 
    api_key="mi_clave"
)
```

## Uso Rápido (Integrado en FastAPI)
```python
from fastapi import FastAPI
from robin_local_logger import init_robin_logger

app = FastAPI()

@app.on_event("startup")
async def startup():
    init_robin_logger(
        app, 
        log_file="./logs/app.log", 
        max_mb=5.0, 
        api_key="tu_clave_secreta"
    )
```

## Endpoints
- `GET /robin/logs?lines=200`: Devuelve los últimos logs en formato JSON.
- `POST /robin/logs`: Permite registrar logs manualmente enviando `{"message": "...", "level": "info"}`.
