Como cambiar el nivel de log en runtime
Cuando un servicio en produccion tiene un comportamiento sospechoso, activar DEBUG puntual sobre un paquete y restaurarlo al terminar suele ser mas rapido que un redeploy con la configuracion ajustada. El arquetipo deja expuesto /actuator/loggers para ese flujo — los cambios aplican de inmediato y se revierten al reiniciar el proceso.
|
El endpoint requiere autenticacion en una configuracion de produccion tipica (la |
Ver el nivel actual de un logger
curl http://localhost:8080/actuator/loggers/io.zutun.templates.orders
Respuesta:
{
"configuredLevel": null,
"effectiveLevel": "INFO"
}
-
configuredLevel: nivel seteado explicitamente en este logger.nullsignifica que hereda del padre. -
effectiveLevel: nivel que efectivamente se aplica, despues de resolver herencia.
Para listar todos los loggers conocidos: GET /actuator/loggers.
Subir el nivel a DEBUG
curl -X POST http://localhost:8080/actuator/loggers/io.zutun.templates.orders \
-H 'Content-Type: application/json' \
-d '{"configuredLevel": "DEBUG"}'
El cambio aplica de inmediato — el siguiente log emitido por cualquier clase bajo io.zutun.templates.orders sale con nivel DEBUG. La respuesta es 204 No Content cuando tiene exito.
Niveles aceptados: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF.
Restaurar al default
Para volver a heredar el nivel del padre — es decir, deshacer el override y dejar que la configuracion de application.yaml o las variables de entorno gobiernen otra vez — se manda null:
curl -X POST http://localhost:8080/actuator/loggers/io.zutun.templates.orders \
-H 'Content-Type: application/json' \
-d '{"configuredLevel": null}'
Tambien se puede usar DELETE con el mismo efecto:
curl -X DELETE http://localhost:8080/actuator/loggers/io.zutun.templates.orders
|
Los cambios en runtime no persisten al restart. Cuando el proceso reinicia, los loggers vuelven a la configuracion declarada en |
Ajustar varios loggers a la vez
/actuator/loggers no soporta batch. Para mover multiples loggers, encadenar requests — por ejemplo en un script:
for pkg in \
io.zutun.templates.orders \
io.zutun.templates.commons.adapter.in \
org.springframework.transaction
do
curl -X POST "http://localhost:8080/actuator/loggers/$pkg" \
-H 'Content-Type: application/json' \
-d '{"configuredLevel": "DEBUG"}'
done
Caso de uso: investigar un evento que no se publica
Escenario: un evento de dominio no aparece en el broker. La hipotesis es que el outbox no esta dispatching, pero los logs en INFO no muestran nada.
-
Subir a
DEBUGel procesador de outbox y la publicacion:curl -X POST http://localhost:8080/actuator/loggers/io.zutun.templates.commons.adapter.in.tasks \ -H 'Content-Type: application/json' \ -d '{"configuredLevel": "DEBUG"}' -
Reproducir el flujo. Los logs ahora muestran cada poll, cada batch, y la decision de publicar o saltear.
-
Restaurar:
curl -X DELETE http://localhost:8080/actuator/loggers/io.zutun.templates.commons.adapter.in.tasks
Para investigar el estado de la bandeja sin tocar logs, ver Inspeccionar las bandejas de mensajeria.
Ver tambien
-
Catalogo de endpoints actuator —
/actuator/loggersy los demas que el arquetipo expone. -
Por que
show-details: when-authorized— el modelo de exposicion que aplica tambien al endpointloggers.