handleLogItem processes a "log" envelope item.
(item EnvelopeItem)
| 263 | |
| 264 | // handleLogItem processes a "log" envelope item. |
| 265 | func (h *handler) handleLogItem(item EnvelopeItem) { |
| 266 | if h.db == nil { |
| 267 | return |
| 268 | } |
| 269 | |
| 270 | // Log items can be {"items": [...]} or a bare array. |
| 271 | var envelope LogEnvelope |
| 272 | if err := json.Unmarshal(item.Payload, &envelope); err == nil && len(envelope.Items) > 0 { |
| 273 | if err := storeLogs(h.db, envelope.Items); err != nil { |
| 274 | slog.Warn("sentry: failed to store logs", "err", err) |
| 275 | } |
| 276 | return |
| 277 | } |
| 278 | |
| 279 | var logs []LogRecord |
| 280 | if err := json.Unmarshal(item.Payload, &logs); err == nil && len(logs) > 0 { |
| 281 | if err := storeLogs(h.db, logs); err != nil { |
| 282 | slog.Warn("sentry: failed to store logs (array)", "err", err) |
| 283 | } |
| 284 | } |
| 285 | } |
| 286 | |
| 287 | // injectEventID adds "event_id" to a JSON payload that lacks it. |
| 288 | // Used to normalize Sentry SDK v4+ payloads which omit event_id from item bodies. |
no test coverage detected