logcfg.xml
Описаны назначение и параметры файла logcfg.xml для настройки технологического журнала и дампов аварийного завершения BAS. Рассмотрены элементы <log> и <event>, группы событий и шаблоны отбора.. Общее описание. Общее описание. Элемент <log>. Элемент <event>
Общее описание
Файл logcfg.xml используется для настройки параметров технологического журнала и механизма создания дампов при аварийном завершении работы системы BAS.
Файл размещается в каталоге файлов конфигурации системы BAS, его наличие не является обязательным.
Если файл не найден, технологический журнал имеет следующие параметры:
- Технологический журнал (элемент <log>) — выключен.
Технологический журнал по умолчанию (элемент <defaultlog>):
- Формирование — включено.
- Время жизни — 24 часа.
- Уровень формирования событий <system> для всех компонентов системы определен как Error.
Хранится в каталогах:
- Windows: %USERPROFILE%\Local Settings\1C\1cv8\logs (%LOCALAPPDATA%\1C\1cv8\logs для ОС Windows Vista и новее).
- ОС Linux: ~/.1cv8/logs.
Дампы аварийного завершения (актуально только для Windows):
- Сохраняются минимальные дампы аварийного завершения работы системы (type="1").
- Дампы хранятся в каталоге %USERPROFILE%\Local Settings\Application Data\1C\1Cv8\dumps (%LOCALAPPDATA%\1C\1Cv8\dumps для ОС Windows Vista и новее).
Пример:
<config xmlns="http://bas-soft.eu/v8/tech-log">
<log location="c:\bas\logs" history="1">
<event>
<eq property="name" value="conn"/>
</event>
</log>
<dump location="c:\bas\dumps" create="1" type="2"/>
</config>
Этот конфигурационный файл определяет следующее:
- в технологическом журнале регистрируются все события установления и разрыва клиентского соединения с сервером;
- файлы технологического журнала размещаются в каталоге c:\bas\logs;
- файлы технологического журнала хранятся в течение одного часа;
- файлы дампов хранятся в каталоге c:\bas\dumps;
- файлы дампов содержат всю доступную информацию (содержимое всей памяти процесса).
Совет
Для редактирования файла конфигурации технологического журнала удобно использовать специальный инструмент, размещенный на ИТС: Настройка технологического журнала (https://its.bas-soft.eu/db/metoddevu#content:8021165:hdoc).
Общее описание
Корневым элементом конфигурационного файла является элемент <config>, который определяет параметры технологического журнала. Он может содержать несколько элементов <log>, один элемент <dump>, один элемент <leaks>, один элемент <plansql>, один элемент <defaultlog>, один или несколько элементов <system>:
<config…>
<log…>…</log>
<log…>…</log>
<log…>…</log>
<dump … />
<leaks>…</leaks>
<mem/>
<plansql/>
<dbmslocks/>
<ftextupd …/>
<query …/>
<inputbystring …/>
<scriptcircrefs/>
<system … />
<system … />
<system … />
<defaultlog … />
</config>
Эти элементы отвечают за следующее:
- Элемент <log> определяет каталог технологического журнала и его состав.
- Элемент <dump> определяет каталог для записи дампов аварийного завершения.
- Элемент <leaks> устанавливает отслеживание утечек памяти, которые могут быть вызваны ошибками в коде решения. Отслеживание утечек памяти несколько снижает производительность.
- Элемент <mem> предназначен для учета используемой памяти.
- Элемент <plansql> предназначен для управления сбором планов запросов, формируемых при работе различных СУБД. Сами планы запросов содержатся в свойстве <planSQLText> событий, связанных с СУБД.
- Элемент <dbmslocks> предназначен для управления сбором информации о блокировках СУБД.
- Элемент <ftextupd> предназначен для управления сбором информации о процессах обновления индекса полнотекстового поиска.
- Элемент <query> управляет внесением в технологический журнал информации о полях, содержащих NULL при выполнении запроса к внешнему источнику данных, но для которых такое значение невозможно.
- Элемент <inputbystring> предназначен для управления сбором информации об использовании механизма ввода по строке.
- Элемент <scriptcircrefs> управляет работой механизма отслеживания информации о циклических ссылках при выполнении встроенного языка.
- Элемент <defaultlog> определяет каталог и время жизни технологического журнала по умолчанию.
- Элемент <system> определяет настройки формирования системных событий.
Элементы можно разделить на несколько групп:
1. Элементы, управляющие формированием того или иного события. К таким элементам относятся <dump>, <leaks>, <mem>, <plansql>, <ftextupd>, <system>, <query>, <scriptcircrefs>, <inputbystring>. При этом, если в файле настроек технологического журнала отсутствует нужный элемент, соответствующее событие системой не формируется. Другими словами, если, например, учет используемой памяти не включен элементом <mem>, то наличие отбора по событию MEM никак не повлияет на наполнение технологического журнала, поскольку событие просто не формируется.
2. Элементы, задающие отбор для уже сформированных данных технологического журнала. К таким элементам относятся <event> и <property>. С помощью этих элементов можно обрабатывать сформированные системой события, чтобы уменьшить количество данных, записываемых в файлы технологического журнала.
3. Элементы, управляющие размещением файлов с данными (технологический журнал и дампы). К таким элементам относятся <log>, <defaultlog>, <dump>.
Элемент <log>
Элемент <log> определяет каталог технологического журнала и условия отбора, по которым в технологический журнал вносятся ранее сформированные события.
ВНИМАНИЕ!
Не рекомендуется настраивать большое количество (свыше 20) технологических журналов (элементов <log>) в файле logcfg.xml. Большое количество настроенных журналов может привести к существенному замедлению работы системы.
Атрибуты элемента:
Атрибут location
Имя каталога, в котором будет размещаться технологический журнал.
ВНИМАНИЕ!
Следует помнить, что каталог технологического журнала не предназначен для хранения файлов, не относящихся к технологическому журналу. Поэтому не следует размещать в нем дампы или использовать каталог, который может содержать файлы, не относящиеся к технологическому журналу системы. Если в каталоге, указанном как каталог технологического журнала, есть посторонние файлы, указание каталога считается неправильным, и технологический журнал не создается.
Примечание
В элементах <log>, <dump> и <defaultlog> следует указывать разные каталоги в атрибутах location.
Атрибут history
Количество часов, по истечении которых информация будет удаляться из технологического журнала.
В элемент <log> могут быть вложены элементы <event> и <property>, состав которых определяет условие записи в журнал каждого события и условия записи каждого свойства события.
Если этот элемент не содержит ни одного элемента <event>, ни одно событие в журнал записываться не будет.
Элемент <event>
Последовательность элементов <event> определяет условие, при выполнении которого событие будет внесено в журнал. В журнал вносятся только события, соответствующие условию. Иначе говоря, если условие, определенное последовательностью элементов <event>, принимает значение True, событие будет записано в журнал. Событие включается в журнал, только если оно удовлетворяет всем условиям внутри хотя бы одного из элементов <event>. То есть условия внутри <event> объединяются «по AND», а элементы <event> — «по OR».
Условия задаются элементами:
- eq — равно;
- ne — не равно;
- gt — больше;
- ge — больше или равно;
- lt — меньше;
- le — меньше или равно;
- like — соответствие маске.
Каждый из этих элементов, кроме элемента like, определяет простое сравнение значения параметра события, имя которого задается атрибутом property, со значением атрибута value.
Пример:
<event>
<eq property="name" value="proc"/>
</event>
В этом примере в технологическом журнале будут регистрироваться события, относящиеся к группе с именем PROC.
Доступны следующие имена групп событий.
Имя события | Описание |
|---|---|
ADMIN | Управляющие действия администратора кластера серверов системы. |
ATTN | Записи подсистемы мониторинга состояния кластера системы. |
CALL | Входящий удаленный вызов (удаленный вызов на стороне принимающей вызов). |
CLSTR | Выполняет операции, изменяющие работу кластера серверов. |
CONFLOADFROMFILES | Выполнение операций загрузки конфигурации из файлов; |
CONN | Установление или разрыв клиентского соединения с сервером. |
DB2 | Выполнение операторов SQL СУБД Db2. |
DBCOPIES | Работа с копиями базы данных. |
DBMSSQL | Выполнение операторов SQL СУБД Microsoft SQL Server. |
DBMSSQLCONN | Событие формируется при первом соединении сервера системы с СУБД Microsoft SQL Server, в момент выбора провайдера для работы с базой данных. |
DBORACLE | Выполнение операторов SQL СУБД Oracle Database. |
DBPOSTGRS | Выполнение операторов SQL СУБД PostgreSQL. |
DBV8DBENG | Выполнение операторов SQL файловой СУБД. |
DHIST | Выполнение обновления истории данных. |
EDS | Работа с внешними источниками данных. |
EVENTLOG | Предназначен для фиксации событий, связанных с формированием индекса журнала регистрации. |
EXCP | Исключительные ситуации системы, которые штатно не обрабатываются и могут привести к аварийному завершению серверного процесса или подключенного к нему клиентского процесса. |
EXCPCNTX | События, которые начались, но не закончились на момент возникновения нештатной ситуации. |
FTEXTCheck | Возникает при проверке файлов индекса полнотекстового поиска. |
FTEXTUpd | Возникает при обновлении файлов индекса полнотекстового поиска. |
HASP | Событие описывает одно обращение к аппаратному ключу защиты. |
InputByString | Возникает при обработке платформой ввода по строке. |
LEAKS | События, связанные с утечками памяти, которые могут быть вызваны ошибками в коде решения. |
LIC | События, связанные с получением и освобождением лицензий (как программных, так и ключей HASP), получением лицензий на базовые версии, регулярным мониторингом соответствия реального оборудования и списка оборудования, зафиксированного в лицензии. |
MAILPARSEERR | Событие, формируемое при возникновении ошибки при разборе почтового сообщения. |
MEM | События, связанные с увеличением объема памяти, занятой серверными процессами (ragent, rmngr, rphost). |
PROC | События, относящиеся к процессу в целом и влияющие на его дальнейшую работоспособность. Например: запуск, завершение, аварийное завершение и т. д. |
QERR | События, связанные с выявлением ошибок компиляции запроса или ограничений на уровне записей и полей базы данных. |
SCALL | Исходящий удаленный вызов (исходящий вызов на стороне источника вызова). |
SCOM | События создания или удаления серверного контекста, обычно связанного с информационной базой. |
SDBL | События, связанные с выполнением запросов к модели базы данных системы. |
SDGC | Событие возникает при срабатывании механизма очистки сеансовых данных. |
SESN | Действия, относящиеся к сеансу работы. Например: начало сеанса, завершение сеанса и т. д. |
SINTEG | Работа с внешним сервисом интеграции. Событие возникает при отправке и начале получения сообщений. |
SRVC | События, связанные с запуском, остановкой и оповещениями сервисов кластера серверов. |
SYSTEM | Системные события механизмов платформы, предназначенные для анализа специалистами поддержки. Настройку событий этого типа следует выполнять только по явным указаниям службы технической поддержки и только на время воспроизведения расследуемой проблемы. В обычной работе такая настройка может привести к существенному увеличению объема файлов журнала и замедлению работы программы. |
TDEADLOCK | Обнаружена взаимоблокировка в управляемом режиме. |
TLOCK | Управление транзакционными блокировками в управляемом режиме. |
TTIMEOUT | Превышение максимального времени ожидания транзакционной блокировки. |
VRSCACHE | Работа кэша серверных вызовов. |
VRSREQUEST | Запрос к серверу относительно определенного ресурса. |
VRSRESPONSE | Ответ сервера. |
WINCERT | Ошибки, связанные с проверкой сертификата средствами ОС Windows. Такие события могут помочь специалистам поддержки в расследовании причин некорректной проверки сертификатов. |
Также следует отметить, что события из групп PROC, SCOM, EXCP, CONN и ADMIN возникают относительно редко и содержат небольшое количество информации, тогда как регистрация событий из групп SDBL, DB2, DBMSSQL, DBPOSTGRS, DBORACLE может привести к значительному росту объема технологического журнала.
Элемент like определяет, соответствует ли свойство события технологического журнала определенной маске. Маска представляет собой последовательность символов, некоторые из которых означают сами себя, а некоторые являются шаблонами для описания группы символов.
Например, элемент <like property="SDBL" value="%reference%"/> означает проверку значения свойства SDBL события технологического журнала на соответствие маске %reference%.
К шаблонам относятся:
- % — 0 или более произвольных символов.
- _ — 1 произвольный символ.
- [...] — один из перечисленных символов, при этом [...] может содержать произвольные символы, а также диапазоны вида с-С, где с — начальный символ диапазона, С — конечный символ диапазона.
- [^...] — один произвольный символ, кроме перечисленных в скобках [].
- \ — префиксный символ. Игнорируется и означает, что следующий за ним символ является обычным символом, который означает сам себя, а не шаблоном.
- Все остальные символы — простые символы, которые означают сами себя. При сравнении простых символов регистр букв не различается.
Примеры шаблонов:
- шаблон — строка с конкретным текстом. В этом случае сравнение like не отличается от сравнения eq. Регистр букв не различается.
- %reference% — строка, содержащая контекст reference в произвольном месте. Регистр букв не различается.
- reference% — строка, содержащая контекст reference в начале. Регистр букв не различается.
- %reference — строка, содержащая контекст reference в конце. Регистр букв не различается.
- %[a-z] — строка со строчной английской буквой от a до z в конце.
- %[^a-z]% — строка, содержащая хотя бы один символ, отличный от строчной английской буквы.
Замечание
Фильтрация событий по шаблонам медленнее, чем использование других элементов сравнения. Использование сложной фильтрации событий и свойств технологического журнала может несколько замедлить работу системы.
Пример:
<log location="c:\logs" history=«1">
<event>
<eq property="name" value="proc"/>
</event>
<event>
<eq property="name" value="scom"/>
</event>
<event>
<eq property="name" value="conn"/>
</event>
<event>
<eq property="name" value="excp"/>
</event>
<event>
<eq property="name" value="dbmssql"/>
</event>
</log>
В этом примере указано, что в технологическом журнале будут регистрироваться события, относящиеся к группам PROC, SCOM, CONN, EXCP и DBMSSQL.