Перейти к содержимому

Событие log — одна структурированная строка лога в разделе Логи проекта. Логи не группируются, как исключения, но идущие подряд повторы схлопываются, как в консоли браузера: лог с тем же level, message и окружением, что и предыдущий лог проекта, сохраняется как счётчик ×N на той строке, а не как новая строка. Строка сохраняет время, атрибуты и контекст самого нового повтора. Каждый повтор всё равно учитывается в квоте как один лог. Лог, у которого есть шаблон (attributes['message.template']), сравнивается по нему, а не по сообщению, так что схлопываются и повторы, отличающиеся только параметрами.

Откуда берётся ​

  • log.log(), log.debug(), log.info(), log.warn(), log.error() — см. Логи. log.trace() отправляется как debug, а log.fatal() — как error.
  • ConsoleIntegration, которая пересылает вызовы console.* как логи.

Payload ​

json
{
    "type": "log",
    "timestamp": "2026-09-24T10:15:02.481Z",
    "tags": {},
    "contexts": { "environment": "production", "trace.id": "…", "span.id": "…" },
    "payload": {
        "level": "info",
        "message": "Order placed",
        "attributes": { "order.id": 1042, "total": 59.9 }
    }
}
ПолеТипОписание
levellog | debug | info | warn | errorУровень, по вызванному методу.
messagestringСама строка лога.
attributesobject, необязательноСтруктурированные данные «ключ — значение» этой строки — по ним ищут в разделе Логи.

Два ключа атрибутов имеют особый смысл: message.template — сообщение до подстановки параметров (Order %s failed for %s), и message.parameter.{n} — n-е значение. SDK добавляет их для сообщения, записанного через fmt, и для вызова console в стиле printf; свой клиент может задать их сам.

attributes — для данных именно этой строки (id заказа, длительность). Данные, верные для всего, что отправляет клиент (текущий пользователь, релиз), относятся в contexts через setUser() / setContext() — см. Теги и контекст.

Лог, пойманный внутри span(), несёт контексты trace.id / span.id, поэтому показывается связанным с этим трейсом.

Квота ​

Учитывается как одно событие в месячном лимите логов — и только в нём, так что закончившиеся логи никогда не останавливают ошибки и трейсы.