Enviar Logs Por HTTP
Objetivo: ingerir logs por HTTP y validar que estén disponibles de inmediato para lectura/streaming.
Precondiciones
- El servicio JsonLog es alcanzable.
- Para canales privados, ten un token Bearer con
acccoincidente. - Envía siempre un cuerpo JSON en
POST /log(mínimo{}).
Flujo De API/Script
- Enviar evento público:
POST /logcon payload JSON.
- Enviar evento de canal:
POST /log?cid=<channel_id>con payload JSON.
- Leer logs en buffer:
GET /logpara logs públicos.GET /log?cid=<channel_id>para logs de canal.
Flujo HTTP/curl
JSONLOG_BASE_URL="http://localhost:3002"
ACCESS_TOKEN="<optional_account_token>"
# Evento público (no requiere auth)
curl -sS -X POST "${JSONLOG_BASE_URL}/log" \
-H "content-type: application/json" \
--data '{"message":"hello from public","service":"web"}'
# Evento de canal (auth opcional salvo que el canal sea privado)
curl -sS -X POST "${JSONLOG_BASE_URL}/log?cid=svc-api" \
-H "authorization: Bearer ${ACCESS_TOKEN}" \
-H "content-type: application/json" \
--data '{"message":"channel event","_jsonlog":{"lvl":"info"}}'
# Leer buffer público
curl -sS "${JSONLOG_BASE_URL}/log"
# Leer buffer de canal
curl -sS "${JSONLOG_BASE_URL}/log?cid=svc-api" \
-H "authorization: Bearer ${ACCESS_TOKEN}"
Validación
POST /logdevuelve200cuando el payload es aceptado.GET /logdevuelve un arreglo.GET /log?cid=<id>devuelve un arreglo para canales visibles y404para canales privados con cuenta incorrecta.