---
name: get_logger
kind: function
lang: py
domain: infra
version: "1.0.0"
purity: impure
signature: "def get_logger(name: str = 'app') -> logging.Logger"
description: "Devuelve un logger existente si ya tiene handlers, o lo crea con setup_logger. Util en modulos internos que no controlan la inicializacion del logger."
tags: [logging, logger, infra, utility, pendiente-usar]
uses_functions: [setup_logger_py_infra]
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [logging]
params:
  - name: name
    desc: "nombre del logger a obtener o crear"
output: "instancia logging.Logger configurada con handlers"
tested: true
tests:
  - "get_logger retorna logger configurado"
test_file_path: "python/functions/infra/setup_logger_test.py"
file_path: "python/functions/infra/setup_logger.py"
---

## Ejemplo

```python
from setup_logger import get_logger

# En cualquier modulo, sin preocuparse de si el logger ya fue inicializado
log = get_logger("mi_app")
log.info("Mensaje desde un modulo interno")
```

## Notas

Companion de `setup_logger`. Si el logger tiene handlers (ya fue configurado), lo devuelve tal cual. Si no, llama a `setup_logger` con valores por defecto (log_dir="logs"). Comparten el mismo archivo de implementacion.
