Logging
Saptiva-Agents utiliza el módulo de registro (logging) incorporado en Python.
Hay dos tipos de registro (logging):
Registro de seguimiento (trace logging): Se utiliza para depuración y son mensajes legibles por humanos que indican lo que está sucediendo. Está destinado a que un desarrollador entienda lo que ocurre en el código. El contenido y formato de estos logs no deben ser usados por otros sistemas.
Nombre:
TRACE_LOGGER_NAME
Registro estructurado (structured logging): Este logger emite eventos estructurados que pueden ser consumidos por otros sistemas. El contenido y formato de estos logs sí deben ser considerados por otros sistemas.
Nombre:
EVENT_LOGGER_NAME
ROOT_LOGGER_NAME puede utilizarse para habilitar o deshabilitar todos los logs.
Habilitar Salida de Logs
Para habilitar el registro de seguimiento, puedes utilizar el siguiente código:
import logging
from saptiva_agents.core import TRACE_LOGGER_NAME
# Configura el nivel de logging general
logging.basicConfig(level=logging.WARNING)
# Obtiene el logger de trazas
logger = logging.getLogger(TRACE_LOGGER_NAME)
# Agrega un manejador para imprimir en consola
logger.addHandler(logging.StreamHandler())
# Establece el nivel de trazas en DEBUG
logger.setLevel(logging.DEBUG)Para habilitar el logging estructurado, puedes usar el siguiente código:
Logging Estructurado
El logging estructurado permite escribir lógica que maneje los eventos reales con todos sus campos, en lugar de solo una cadena de texto formateada.
Por ejemplo, si definimos un evento personalizado y lo emitimos, podemos escribir el siguiente manejador:
Y así es como puedes usarlo:
Emitir Logs
Los nombres anteriores (TRACE_LOGGER_NAME y EVENT_LOGGER_NAME) son los loggers raíz para cada tipo. El código que emite logs debe usar un logger hijo de estos. Por ejemplo, si estás escribiendo un módulo my_module y quieres emitir logs de trazas, puedes hacer lo siguiente:
Emitir Logs Estructurados
Si tu evento es un dataclass, puedes emitirlo así:
Última actualización