Zidium

Лог используется для хранения произвольной информации, текстовой и других типов, с привязкой ко времени, которую ваше приложение пожелает отправить в Zidium. Лог никак не влияет на цвет компонента, по логу не создаются уведомления. Это просто данные, которые вы хотите сохранить для дальнейшего изучения.

Подробнее о принципах работы лога читайте в статье Лог (принцип работы)

В каждой записи лога содержится:

  • Дата — Дата и время, когда эта запись была сделана;
  • Важность — Уровень важности, от Trace до Fatal. Распределяйте сообщения по важности как вам удобнее;
  • Сообщение — Основной текст записи лога;
  • Свойства — Список дополнительных свойств, у каждого свойства есть название, тип и данные. Данные могут быть любого типа - текстовые, числовые, изображение, бинарные и т.д.;
  • Контекст — Идентификатор потока, если один компонент пишет в лог из нескольких потоков. Контекст позволит вам в дальнейшем просматривать лог только нужного потока.

Для отправки лога из приложения используйте следующий код:

// Отправим запись в лог с уровнем Info, с текущей датой и без свойств
component.Log.Info("Тестовая запись в лог");

В этом примере предполагается, что вы уже получили и запомнили компонент в переменной component. Как это сделать, читайте в разделе Компоненты (How To).

Используйте методы Log.Error, Log.Warning, Log.Debug и Log.Trace для указания важности.

Для отправки лога выполните POST-запрос:

Url запроса

АдресВашегоСервисаApi/SendLog

Тело запроса
{
    "Token": {
        "SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
    },
    "Data": [
        {
            "ComponentId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "Date": "2016-04-30T23:25:43.511Z",
            "Order": 0,
            "Level": "Info",
            "Message": "Log message",
            "Context": "Context"
        },
        ...
    ]
}

Здесь:

  • Token — раздел с токеном авторизации. В нём:
    • SecretKey — ключ доступа к Api, посмотрите в личном кабинете;
  • Data — раздел с данными записей лога. В нём:
    • ComponentId (guid) — Уникальный Id компонента, для которого отправляется лог.
    • Date (datetime) — Дата и время записи лога. Необязательная. Если не указана, будет использовано текущее значение на стороне сервиса.
    • Order (int) — Порядок записей для совпадающей даты и времени. Может получиться так, что на один и тот же момент времени приходится несколько записей лога. Чтобы хранить их в нужном порядке, используется это поле. Большее значение означает более позднюю запись. Необязательный, по умолчанию равен 0.
    • Level (string) — Уровень важности записи лога. Может иметь значения: Trace, Debug, Info, Warning, Error, Fatal. Необязательный, по умолчанию равен Info.
    • Message (string) — Текстовое описание события. Максимальная длина 4000 символов.
    • Context (string) — Название контекста, для многопоточного лога. Необязательное. Максимальная длина 255 символов.

К каждой записи лога можно прикрепить дополнительные свойства.

Чтобы указать свойства, используйте следующий код:

var errorCode = 1000; // Числовой параметр
var data = new Byte[100]; // Бинарный параметр
// Создадим набор свойств
var properties = new Dictionary<string, object>();
properties.Add("Код ошибки", errorCode);
properties.Add("Содержимое пакета", data);
// Отправим запись в лог с уровнем Warning и свойствами
component.Log.Warning("Не удалось получить данные", properties);

Вы можете также использовать функции InfoFormat, WarningFormat и т.д., которые позволяют дополнительно отформатировать строку, аналогично стандартной функции Format.

Для отправки лога со свойствами выполните POST-запрос:

Url запроса

АдресВашегоСервисаApi/SendLog

Тело запроса
{
    "Token": {
        "SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
    },
    "Data": [
        {
            "ComponentId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
            "Date": "2016-04-30T23:25:43.511Z",
            "Order": 0,
            "Level": "Info",
            "Message": "Log message",
            "Context": "Context",
            "Properties": [
                {
                    "Name": "Код ошибки",
                    "Value": 1000,
                    "Type": "Int32"
                }, 
                {
                    "Name": "Содержимое пакета",
                    "Value": "Какие-то данные",
                    "Type": "String"
                },
                ...
            ]
        },
        ...
    ]
}

Здесь:

  • Token — раздел с токеном авторизации. В нём:
    • SecretKey — ключ доступа к Api, посмотрите в личном кабинете;
  • Data — раздел с данными записей лога. В нём:
    • ComponentId (guid) — Уникальный Id компонента, для которого отправляется лог.
    • Date (datetime) — Дата и время записи лога. Необязательная. Если не указана, будет использовано текущее значение на стороне сервиса.
    • Order (int) — Порядок записей для совпадающей даты и времени. Может получиться так, что на один и тот же момент времени приходится несколько записей лога. Чтобы хранить их в нужном порядке, используется это поле. Большее значение означает более позднюю запись. Необязательный, по умолчанию равен 0.
    • Level (string) — Уровень важности записи лога. Может иметь значения: Trace, Debug, Info, Warning, Error, Fatal. Необязательный, по умолчанию равен Info.
    • Message (string) — Текстовое описание события. Максимальная длина 4000 символов.
    • Context (string) — Название контекста, для многопоточного лога. Необязательное. Максимальная длина 255 символов.
    • Properties (array) — Массив дополнительных свойств события:
      • Name (string) — Название свойства.
      • Value — Значение свойства.
      • Type (string) — Тип свойства. Может быть одним из: Boolean, DateTime, Double, Int32, Int64, Binary, String, Guid.
      При наличии в событии стека рекомендуется записывать его в свойство с названием stack.

Чтобы посмотреть записи лога, перейдите в раздел Лог личного кабинета. Выберите нужный компонент в списке и нажмите кнопку Найти. Будут показаны записи лога по этому компоненту:

Кликнув по записи лога, можно посмотреть её свойства:

Используйте фильтры в верхней части страницы, чтобы отобрать записи лога, которые вам нужны.