Zidium

Файл Zidium.xml используется для указания настроек Zidium. Он должен находиться в одной папке с запускаемой сборкой приложения.

В качестве альтернативы можно программно задать все параметры в свойстве Config класса Zidium.Api.IClient.

Содержимое файла Zidium.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- Подробнее об этом файле: http://zidium.net/wiki/api/dot-net/zidium-xml -->

<root>
  <!-- Параметры доступа -->
  <!-- accountName - Название аккаунта -->
  <!-- secretKey - Секретный ключ аккаунта -->
  <!-- waitOnErrorSeconds - Интервал перед следующей попыткой отправки данных в случае ошибки, в секундах -->
  <!-- disable - Полное отключение всех функций -->
  <access accountName=""
          secretKey=""
          waitOnErrorSeconds="60"
          disable="false" />
  
  <!-- Параметры работы с логом -->
  <logs>
    
    <!-- Параметры web-лога -->
    <!-- disable - Полное отключение web-лога -->
    <!-- threads - Количество внутренних потоков, которые будут отправлять данные -->
    <!-- batchBytes - Примерный размер одного пакета отправки данных, в байтах -->
    <!-- sendPeriodSeconds - Интервал отправки данных, в секундах -->
    <!-- reloadConfigsPeriodSeconds - Интервал обновления настроек web-лога из личного кабинета, в секундах -->
    <!-- queueBytes - Максимальный размер очереди web-лога, в байтах -->
    <!-- attemps - Не используется -->
    <webLog disable="false" 
            threads="3"
            batchBytes="10 240" 
            sendPeriodSeconds="5"
            reloadConfigsPeriodSeconds="300"
            queueBytes="104 857 600"
            attemps="100"/>
    
    <!-- Параметры файлового лога -->
    <!-- disable - Полное отключение файлового лога -->
    <!-- encoding - Кодировка файла -->
    <!-- filePath - Шаблон пути и имени файла -->
    <!-- layout - Формат записей внутри файла -->
    <!-- queueBytes - Максимальный размер очереди файлового лога, в байтах -->
    <!-- maxArchiveFiles - Максимальное количество старых файлов -->
    <!-- deleteOldFileOnStartup - Перезаписывать текущий файл или добавлять данные к нему -->
    <fileLog disable="false"
             encoding="utf-8"
             filePath="#appDir\Logs\#date\#appName_#date_#hour.txt"
             layout="#datetime #level #componentName #tag #message #properties"
             queueBytes="104 857 600"
             maxArchiveFiles="30"
             deleteOldFileOnStartup="false" />
    
    <!-- Параметры консольного лога -->
    <!-- disable - Полное отключение консольного лога -->
    <!-- layout - Формат записей в консоли -->
    <consoleLog disable="false" 
                layout="#datetime #level #componentName #tag #message #properties"/>

    <!-- Параметры внутреннего лога самого Api -->
    <!-- disable - Полное отключение внутреннего лога -->
    <!-- encoding - Кодировка файла -->
    <!-- filePath - Шаблон пути и имени файла -->
    <!-- minLevel - Минимальная важность записи, требуемая для попадания в лог -->
    <!-- deleteOldFileOnStartup - Перезаписывать текущий файл или добавлять данные к нему -->
    <internalLog disable="false"
             encoding="utf-8"
             filePath="#appDir\Logs\#date\#appName_Internal_#date_#hour.txt"
             minLevel="warning"
             deleteOldFileOnStartup="false" />
    
    <!-- Параметры custom-лога -->
    <!-- disable - Полное отключение custom-лога -->
    <customLog disable="true"/>
    
    <!-- Правила попаданий записей в лог -->
    <rules>
      <!-- Правило по компоненту -->
      <!-- systemName - не используется -->
      <!-- writeTo - В какие каналы должна попадать запись -->
      <!-- disable - Отключение правила -->
      <!-- minLevel- Минимальная важность записи, требуемая для попадания в лог -->
      <!-- maxLevel - Максимальная важность записи, требуемая для попадания в лог -->
      <component systemName="*" writeTo="file,console,custom" disable="false" minLevel="trace" maxLevel="fatal"/>
    </rules>
  </logs>
  
  <!-- Параметры работы с событиями -->
  <events>
    <!-- Параметры менеджера событий -->
    <!-- disable - Полное отключение отправки событий -->
    <!-- sendPeriodSeconds - Период отправки событий, в секундах -->
    <!-- threads - Количество внутренних потоков, которые будут отправлять данные -->
    <!-- maxSend - Максимальное количество новых событий, обрабатываемых за одну итерацию отправки -->
    <!-- maxJoin - Максимальное количество склеенных событий, обрабатываемых за одну итерацию отправки -->
    <!-- queueBytes - Максимальный размер очереди событий, в байтах -->
    <eventManager disable="false" 
                  sendPeriodSeconds="5"
                  threads="1"
                  maxSend="1000"
                  maxJoin="1000"
                  queueBytes="104 857 600"/>
    
    <!-- Значения по умолчанию для свойств новых событий -->
    <defaultValues>
      <!-- Событие компонента -->
      <!-- joinIntervalSeconds - Интервал склейки по умолчанию, в секундах -->
      <componentEvent joinIntervalSeconds="300"/>

      <!-- Ошибка -->
      <!-- joinIntervalSeconds - Интервал склейки по умолчанию, в секундах -->
      <applicationError joinIntervalSeconds="300"/>
    </defaultValues>
  </events>
</root>

Разделы и параметры

Значения по умолчанию подходят для большинства ситуаций. Не меняйте параметры, если не знаете точно, что делаете.

Все параметры, кроме секретного ключа, нечувствительны к регистру — можно использовать и заглавные, и строчные буквы.

<access>

В этом разделе указываются параметры доступа к серверу Zidium.

accountName

Название аккаунта. Его можно посмотреть в Личном кабинете в разделе УправлениеАккаунт.

secretKey

Секретный ключ аккаунта. Его можно посмотреть в Личном кабинете в разделе УправлениеАккаунт.

waitOnErrorSeconds

Интервал перед следующей попыткой отправки данных в случае ошибки, в секундах. При любой ошибке отправки данных Api не будет пытаться отправить данные в течение указанного интервала.
По умолчанию — 60 секунд.

disable

Полное отключение всех функций Zidium. При установленном параметре все вызовы методов Api будут возвращать управление, ничего не делая, как будто Zidium нет вообще. Может пригодиться для тестирования работы без Zidium, или если вы подозреваете, что Zidium вносит проблемы в работу вашего приложения.
По умолчанию — false.

<logs>

В этом разделе указываются параметры логов.

Всего Api поддерживает 5 каналов лога:

  • Web-лог — Лог, который отправляется в систему (в облако).
  • Файловый лог — Лог, который пишется в локальный файл.
  • Консольный лог — Лог, который пишется в стандартную консоль.
  • Внутренний лог — Лог о работе самого Api, который пишется в локальный файл.
  • Custom-лог — Подключаемый модуль лога, через свойство CustomLogManager класса Zidium.Api.IClient.

Все включенные каналы лога работают одновременно (не заменяют друг друга).

<webLog>

В этом разделе указываются параметры web-лога. Web-лог отправляется в Zidium (в облако).

disable

Полное отключение web-лога. Никакие данные не будут отправляться.
По умолчанию — false.

threads

Количество внутренних потоков, которые будут отправлять данные.
По умолчанию — 3.

batchBytes

Примерный размер одного пакета отправки данных, в байтах. Если размер записей лога больше значения параметра, то отправка будет разбита на несколько пакетов так, чтобы размер пакета по возможности не превышал указанного значения.
По умолчанию — 10 КБайт.

sendPeriodSeconds

Интервал отправки данных, в секундах.
По умолчанию — 5 секунд.

reloadConfigsPeriodSeconds

Интервал обновления настроек web-лога из личного кабинета, в секундах. Включенные уровни лога можно менять из Личного кабинета для каждого компонента индивидуально. Api перечитывает эти настройки через указанный интервал.
По умолчанию — 5 минут.

queueBytes

Максимальный размер очереди web-лога, в байтах. Между отправками данные web-лога хранятся в памяти. Максимальный размер очереди в памяти задаётся в этом параметре. Если размер очереди достигнет максимума (так может произойти из-за длительного отсутствия интернета), самые старые записи будут удалены из памяти и не попадут в систему.
По умолчанию — 100 МБайт.

<fileLog>

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

disable

Полное отключение файлового лога. Никакие файлы не будут создаваться.
По умолчанию — false.

encoding

Кодировка текстового файла. Поддерживаются любые кодировки из типа System.Text.Encoding.
По умолчанию — utf-8.

filePath

Шаблон пути и имени файла. Все недостающие папки будут созданы автоматически. Можно использовать следующие подстановки:

  • #appDir — Папка приложения
  • #appName — Название запускаемой сборки приложения
  • #date — Текущая дата в формате yyyy.MM.dd
  • #year — Текущий год
  • #month — Текущий месяц
  • #day — Текущий день
  • #hour — Текущий час

По умолчанию — #appDir\Logs\#date\#appName_#date_#hour.txt

layout

Формат записей внутри файла. Можно использовать следующие подстановки:

  • #datetime — Текущая дата и время, в формате dd.MM.yyyy HH:mm:ss
  • #level — Уровень важности записи лога
  • #componentName — Отображаемое имя компонента
  • #tag — Контекст записи лога, используется для многопоточного лога
  • #message — Текст записи лога (сообщение)
  • #properties — Дополнительные свойства записи лога

По умолчанию — #datetime #level #componentName #tag #message #properties

queueBytes

Максимальный размер очереди файлового лога, в байтах. Между записями в файл данные лога хранятся в памяти. Максимальный размер очереди в памяти задаётся в этом параметре. Если размер очереди достигнет максимума (так может произойти из-за сильной перегрузки дисковой системы), самые старые записи будут удалены из памяти и не попадут в файл.
По умолчанию — 100 МБайт.

maxArchiveFiles

Максимальное количество старых файлов. Если количество сохранённых файлов лога превысит указанное значение, самые старые файлы будут удалены. Полезно для предотвращения заполнения диска огромным количеством более не нужных логов.
По умолчанию — 30.

deleteOldFileOnStartup

Перезаписывать ли текущий файл. Имя текущего файла определяется параметром filePath. Если такой файл уже есть и эта настройка включена, то файл будет перезаписан. Иначе данные будут добавлены в его конец.
По умолчанию — false.

<consoleLog>

В этом разделе указываются параметры консольного лога. Консольный лог выводится в стандартную консоль, но только в том случае, если ваше приложение её создаёт. Например, для приложения на WinForms консольный лог никуда выводиться не будет.

disable

Полное отключение консольного лога. Никакие данные не будут выводиться.
По умолчанию — false.

layout

Формат записей внутри файла. Подстановки аналогичны файловому логу.
По умолчанию — #datetime #level #componentName #tag #message #properties

<internalLog>

В этом разделе указываются параметры внутреннего лога самого Api. Это классический лог, который пишется в локальный текстовый файл. Во внутренний лог выводятся данные о работе самого Api. Лог может быть полезен, если в работе Api возникли проблемы. По умолчанию внутренний лог отключен.

disable

Полное отключение внутреннего лога. Никакие файлы не будут записываться.
По умолчанию — true.

encoding

Кодировка текстового файла. Поддерживаются любые кодировки из типа System.Text.Encoding.
По умолчанию — utf-8.

filePath

Шаблон пути и имени файла. Все недостающие папки будут созданы автоматически. Подстановки аналогичны файловому логу.
По умолчанию — #appDir\Logs\#date\#appName_#date_#hour.txt

minLevel

Минимальная важность записи, требуемая для попадания в лог. Можно использовать значения: trace, debug, info, warning, error, fatal. Например, если установлено значение error, то в файл лога попадут только записи с важностью error и fatal.
По умолчанию — warning.

deleteOldFileOnStartup

Перезаписывать ли текущий файл. Имя текущего файла определяется параметром filePath. Если такой файл уже есть и эта настройка включена, то файл будет перезаписан. Иначе данные будут добавлены в его конец.
По умолчанию — false.

<customLog>

В этом разделе указываются параметры custom-лога. Custom-лог это подключаемый вами модуль лога, через свойство CustomLogManager класса Zidium.Api.IClient. По умолчанию custom-лог отключен.

disable

Полное отключение custom-лога. Никакие данные не будут выводиться.
По умолчанию — true.

<rules>

В этом разделе настраиваются правила попадания записей лога в соответствующие каналы. Можно указать сколько угодно правил.

<component>

В этом разделе задаются параметры одного правила.

disable

Полное отключение правила.
По умолчанию — false.

writeTo

В какие каналы должна попадать запись. Можно указывать через запятую следующие каналы: file, console, custom. В канал web данные передаются всегда, его правила настраиваются в Личном кабинете.
По умолчанию — file,console,custom

minLevel

Минимальная важность записи, требуемая для попадания в указанные каналы. Можно использовать значения: trace, debug, info, warning, error, fatal. Например, если установлено значение error, то в лог попадут только записи с важностью error и fatal.
По умолчанию — trace.

maxLevel

Максимальная важность записи, требуемая для попадания в указанные каналы. Можно использовать значения: trace, debug, info, warning, error, fatal. Например, если установлено значение info, то в лог попадут только записи с важностью info, warning, error и fatal.
По умолчанию — fatal.

<events>

В этом разделе указываются параметры работы с событиями.

<eventManager>

В этом разделе указываются параметры внутреннего менеджера событий Api.

disable

Полное отключение отправки событий через Api.
По умолчанию — false.

sendPeriodSeconds

Интервал отправки данных, в секундах.
По умолчанию — 5 секунд.

threads

Количество внутренних потоков, которые будут отправлять данные.
По умолчанию — 1.

maxSend

Максимальное количество новых событий, обрабатываемых за одну итерацию отправки.
По умолчанию — 1000.

maxJoin

Максимальное количество склеенных событий, обрабатываемых за одну итерацию отправки.
По умолчанию — 1000.

queueBytes

Максимальный размер очереди событий, в байтах. Между отправками события хранятся в памяти. Максимальный размер очереди в памяти задаётся в этом параметре. Если размер очереди достигнет максимума (так может произойти из-за длительного отсутствия интернета), самые старые записи будут удалены из памяти и не попадут в систему.
По умолчанию — 100 МБайт.

<defaultValues>

В этом разделе указываются значения по умолчанию для свойств новых событий

<componentEvent>

В этом разделе указываются значения по умолчанию для свойств новых событий компонента, то есть событий с категорией ComponentEvent.

joinIntervalSeconds

Интервал склейки, в секундах.
По умолчанию — 5 минут.

<componentEvent>

В этом разделе указываются значения по умолчанию для свойств новых ошибок, то есть событий с категорией ApplicationError.

joinIntervalSeconds

Интервал склейки, в секундах.
По умолчанию — 5 минут.