Логирование
Логгер - это глобальное свойство конфигурации сервера, которое позволяет регистрировать или иным образом обрабатывать входные и выходные данные вызовов функций, операций с переменными get и операций с переменными set.
Когда регистратор сеанса включен, все вызовы функций и операции с переменными будут передаваться в указанное выражение. Выражение может быть использовано для фильтрации определенных функций или операций с переменными для асинхронной обработки.
Конфигурация логирования сессии
Эта группа содержит параметры, определяющие работу регистратора.
Включено
Указывает, включено ли ведение журнала.
Имя свойства: enabled
Тип свойства: Boolean
Выражение
Выражение для фильтрации событий для записи в журнал и указания способа обработки отфильтрованных данных.
Имя свойства: expression
Тип свойства: String
Нормальное количество одновременных задач
Количество потоков по умолчанию для обработки задач протоколирования.
Имя свойства: normalLoggerConcurrentWorkers
Тип свойства: Integer
Максимальное количество одновременных задач
Максимальное количество потоков, которые могут быть задействованы для обработки заданий по мере роста длины очереди.
Имя свойства: maximumLoggerConcurrentWorkers
Тип свойства: Integer
Максимальная длина очереди необработанных заданий
Максимальное количество задач, которые могут быть поставлены в очередь. Когда очередь задач достигнет этого максимума, дополнительные задачи будут отброшены.
Имя свойства: maximumLoggerQueLength
Тип свойства: Integer
Среда разрешения
Выражение регистратора сеанса Среда разрешения: | |||
Контекст переменной или функции, которая регистрируется. Обратите внимание, что это доступно в | |||
Таблица данных, содержащая специфические для события данные для запускающего события. | |||
0 | |||
Имя переменной | Значение Тип | Описание | |
---|---|---|---|
адрес | String | IP-адрес клиента. | |
контекст | String | Полный путь к контексту операции. | |
продолжительность | Long | Время выполнения операции. | |
entityName | String | Имя функции или переменной. | |
вход | String | Входные параметры (вход функции или значение для операции установки переменной)/ | |
логин | String | Имя пользователя, выполняющего операцию | |
operationType | String | Тип операции, один из следующих:
| |
вывод | String | Выходные параметры (выход функции или значение, полученное в результате операции получения переменной) | |
sessionId | Integer | Id текущей сессии | |
имя пользователя | String | Имя пользователя |
Пример выражения регистратора сеансов
Все операции с функциями и переменными будут вызывать выражение. Позаботьтесь о том, чтобы составить выражение, которое обрабатывает именно те операции, которые вас интересуют, и регистрирует нужные данные, не перегружая системные ресурсы.
В следующем примере сначала фильтруются сущности с именем criticalContext
. В этом случае он будет фильтровать вызовы функций с именем criticalContext
и операции get или set над переменными с именем criticalContext
.
Если эти критерии соблюдены, в примере устройства sampleCollector
вызывается функция log
и записывает в журнал следующую информацию, скомпонованную в строку:
now()
- текущая временная метка.
{context}
- Контекст по умолчанию.
{operationType}
- Указывает, была ли зарегистрированная операция вызовом функции, получением или установкой переменной.
{entityName}
- Имя переменной или вызванной функции. В данном примере это всегда будет criticalContext
.
{duration}
- количество времени, затраченное на выполнение вызова функции или операции получения/установки переменной.
{entityName} == "criticalContext" ?
callFunction("users.admin.devices.sampleCollector", "log", now() + "', '" + {context} + "', '" + {operationType} + "', '" + {entityName} + "', " + {duration} + ")", true)
: