dllog: registro de errores en Go con contexto detallado

Fuentes: dllog: Go error logging with detailed context on demand

dllog es una librería para Go que resuelve la tensión entre el registro de errores detallado y la eficiencia en producción. A diferencia de los loggers estándar, que suelen ocultar el contexto técnico de un fallo para no saturar los registros, dllog permite recuperar esa información solo cuando es necesario. El sistema funciona mediante un anillo de búfer limitado por operación: los registros de nivel Debug se almacenan en memoria durante la ejecución y se reproducen con sus marcas de tiempo originales solo si la operación finaliza con un error. Si la operación es exitosa, la información se descarta, manteniendo el rendimiento óptimo.

La herramienta se integra con la librería log/slog y el framework zap, permitiendo su uso en servicios que ya emplean estas dependencias. Para su implementación, se recomienda envolver los manejadores HTTP con Middleware() o abrir un scope con Scope() en funciones que devuelven errores. El rendimiento es clave: fuera de un scope, el costo es de 9,1 ns/op y cero asignaciones, frente a los 4,2 ns/op de un logger estándar configurado en Info. Dentro de un scope, el costo de buffered es de 235 ns y una asignación, el precio de tener la información disponible si el fallo ocurre. El búfer está estrictamente limitado a 256 registros por defecto, eliminando la memoria con el tiempo. Esta solución es ideal para servicios donde la depuración post-mortem es crítica, permitiendo reconstruir la secuencia de eventos que llevó a un fallo sin el sobrecoste de un registro continuo de Debug en producción.