Технологический журнал
Описаны назначение, структура и настройка технологического журнала BAS через файл logcfg.xml. Рассмотрены параметры журнала по умолчанию, формирование дампов памяти в ОС Windows и Linux, а также примеры конфигураций.. Общая информация. Конфигурационный файл технологического журнала. Технологический журнал по умолчанию. Структура технологического журнала. Настройка формирования дампов памяти. Примеры файлов настройки технологического журнала
Конфигурационный файл технологического журнала
Технологический журнал по умолчанию
Структура технологического журнала
Настройка формирования дампов памяти
Примеры файлов настройки технологического журнала
Общая информация
Программа BAS позволяет вести технологический журнал, в который поступает информация от всех прикладных программ системы.
Технологический журнал предназначен для выявления ошибок, возникающих при эксплуатации системы, диагностики работы системы службой технической поддержки разработчиков, а также анализа технологических характеристик работы системы.
Состав и свойства событий технологического журнала могут изменяться при выпуске обновлений Framework программы BAS.
Поскольку технологический журнал представляет собой набор текстовых файлов, хранящихся в различных каталогах, разработчики могут использовать его для анализа различных режимов работы программы BAS.
Технологический журнал может вестись на любом компьютере, на котором установлена программа BAS. За ведение технологического журнала отвечает конфигурационный файл, в котором описаны:
- каталог, в котором будут храниться файлы технологического журнала;
- состав информации, которая будет записана в технологический журнал;
- время, в течение которого хранятся файлы технологического журнала;
- параметры дампа, создаваемого при аварийном завершении программы.
По умолчанию конфигурационный файл отсутствует. Это означает, что технологический журнал включен и настроен на сохранение минимальных дампов при аварийном завершении программы в каталог:
%USERPROFILE%\Local Settings\Application Data\1C\1cv8\dumps
Для ОС Windows Vista и более новых версий каталог будет следующим:
%LOCALAPPDATA%\1C\1Cv8\dumps
При необходимости можно произвольно настроить технологический журнал с помощью отдельного конфигурационного файла. Этот файл должен называться logcfg.xml и располагаться в каталоге файлов конфигурации системы.
Примечание
Для работы технологического журнала в ОС Windows пользователь процесса, записывающего технологический журнал, должен иметь полные права на каталог технологического журнала и права на чтение каталога-владельца каталога технологического журнала.
Система автоматически, с периодичностью 60 секунд, проверяет каталоги конфигурационных файлов на наличие файла logcfg.xml и анализирует его содержимое. Таким образом, параметры технологического журнала можно изменять без перезапуска работающих прикладных программ системы.
При определенных настройках объем технологического журнала может быть достаточно большим, поэтому в конфигурационном файле желательно указывать время, в течение которого хранятся файлы журнала. По истечении указанного времени система удалит устаревшие файлы журнала. Если после удаления устаревших файлов каталог, в котором они располагались, окажется пустым, такой каталог также будет удален. Таким образом, все дерево каталогов технологического журнала не будет содержать устаревших файлов и папок.
ВНИМАНИЕ!
Если система работает в среде Linux, формированием аварийных дампов управляют средства операционной системы. В технологический журнал записывается информация о факте аварийного завершения процесса и номере сигнала, вызвавшего это аварийное завершение.
ВНИМАНИЕ!
Следует учитывать, что каталог технологического журнала не предназначен для хранения файлов, не относящихся к технологическому журналу. Поэтому не следует размещать в нем дампы или использовать каталог, который может содержать файлы, не относящиеся к технологическому журналу. Если в каталоге технологического журнала имеются посторонние файлы, указание каталога считается неправильным и технологический журнал не создается.
Конфигурационный файл технологического журнала
В простейшем виде конфигурационный файл может иметь, например, следующее содержимое:
<config xmlns="http://bas-soft.eu/tech-log">
<log location="c:\baf\logs" history="1">
<event>
<eq property="name" value="conn"/>
</event>
</log>
<dump location="c:\baf\dumps" create="1" type="2"/>
</config>
Этот конфигурационный файл определяет следующее:
- в технологическом журнале регистрируются все события установления и разрыва клиентского соединения с сервером;
- файлы технологического журнала располагаются в каталоге c:\baf\logs;
- файлы технологического журнала хранятся в течение одного часа;
- файлы дампа располагаются в каталоге c:\baf\dumps;
- файлы дампа содержат всю доступную информацию, то есть содержимое всей памяти процесса.
При отсутствии конфигурационного файла используются следующие параметры:
- Технологический журнал – выключен.
- Технологический журнал по умолчанию – включен.
- Дампы минимального размера.
- Дампы хранятся в каталоге %USERPROFILE%\Local Settings\Application Data\1C\1Cv8\dumps профиля текущего пользователя или %LOCALAPPDATA%\1C\1Cv8\dumps для ОС Windows Vista и более новых версий.
Работа с конфигурационным файлом в ОС Linux практически не отличается от работы в ОС Windows, за исключением следующих особенностей:
- Файл должен располагаться в каталоге файлов конфигурации системы.
- Каталог, в котором будет формироваться технологический журнал, должен быть доступен для записи пользователю, от имени которого работает прикладная программа (сервер, клиентские программы, расширение веб-сервера и т. д.), записывающая данные в технологический журнал.
Технологический журнал по умолчанию
Для записи событий, возникающих в критических с точки зрения программы BAS ситуациях, предназначен технологический журнал по умолчанию. Для этого журнала Framework формирует фиксированный фильтр событий, который невозможно изменить.
Технологический журнал по умолчанию имеет следующие настройки:
Каталог файлов технологического журнала по умолчанию:
- ОС Windows: %USERPROFILE%\Local Settings\Application Data\1C\1Cv8\logs (или %LOCALAPPDATA%\1C\1Cv8\logs для ОС Windows Vista и более новых версий);
- ОС Linux: ~/.1cv8/logs.
- Информация удаляется из технологического журнала по умолчанию через 24 часа.
- В технологический журнал по умолчанию попадают события SYSTEM с уровнем Error.
Указанные настройки можно изменить с помощью элемента <defaultlog>. Настройка правил формирования событий, регистрируемых в технологическом журнале по умолчанию, выполняется с помощью элемента <system>.
Структура технологического журнала
Технологический журнал представляет собой каталог, в подкаталогах которого располагаются файлы с собранными технологическими данными. Каталог журнала имеет следующую структуру:
<каталог журнала>
<идентификатор процесса операционной системы>
<файлы журнала одного процесса>
Каждый файл журнала содержит события за 1 час и имеет имя yymmddhh.log, где:
- yy – две последние цифры года;
- mm – номер месяца;
- dd – номер дня;
- hh – номер часа.
Файлы журнала имеют текстовый формат. Сведения о завершении каждого события записываются в файл с новой строки.
Например:
16:08.8750-9060,CALL,0,process=rphost,p:processName=DebugControlCenter,t:clientID=221,t:applicationName=Debugger,t:computerName=COMP1,Interface=5cf29e71-ec34-4f01-b7d1-3529a3da6a21,Method=0 16:08.8911-1,DBPOSTGRS,2,process=rphost,p:processName=Database,t:clientID=216,t:applicationName=1CV8,t:computerName= COMP1,t:connectID=125,Usr= User2,Trans=1,dbpid=58152,Sql="SELECT 1::INT8 FROM PG_CLASS WHERE pg_catalog.pg_table_is_visible(OID) AND RELKIND='r' AND RELNAME='params' LIMIT 1",Result=PGRES_TUPLES_OK 16:08.8913-1,DBPOSTGRS,2,process=rphost,p:processName=Database, t:clientID=216,t:applicationName=1CV8,t:computerName= COMP1,t:connectID=125,Usr=User2,Trans=1,dbpid=58152,Sql="SELECT Creation,Modified,Attributes,DataSize,BinaryData FROM Params WHERE FileName = 'ibparams.inf'",Result=PGRES_TUPLES_OK
Строка завершения события имеет формат: mm:ss.tttttt-d, <наименование>, <уровень>, <ключевые свойства>, где:
- mm – номер минуты в текущем часе;
- ss – номер минуты в текущем часе;
- tttttt – номер микросекунды текущей секунды;
- d – длительность события в микросекундах;
- <наименование> – наименование события;
- <уровень> – уровень события в стеке текущего потока;
- <ключевые свойства> – <ключевое свойство>, <ключевое свойство>, ...
- <Ключевое свойство> – <имя> = <значение>; <наименование>, <имя>, <значение> – произвольный текст. Если в нем имеются символы «конец строки» или «запятая», текст заключается в кавычки или апострофы, в зависимости от того, каких символов в строке меньше, а кавычки или апострофы в тексте удваиваются.
Настройка формирования дампов памяти
Для ОС Windows
Этот раздел содержит пример настройки файла конфигурации технологического журнала (logcfg.xml), необходимого для создания дампов памяти аварийного завершения.
<config xmlns="http://bas-soft.eu/tech-log">
<dump location="c:\baf\dumps" create="1" type="3"/>
</config>
При такой настройке дампы памяти будут формироваться в каталоге C:\baf\dumps, а созданные дампы будут содержать содержимое всей памяти процесса и дополнительный сегмент данных.
Пользователь, от имени которого работает клиентская прикладная программа или сервер, должен иметь полные права на каталоги:
- временных файлов;
- технологического журнала;
- дампов.
Пользователь, от имени которого работает клиентская прикладная программа или сервер, должен иметь право на чтение каталогов:
- конфигурационных файлов;
- каталога-владельца каталога дампов.
Если в файле logcfg.xml настроено получение планов запросов, такой файл должен размещаться в каталоге конфигурационных файлов соответствующей прикладной программы:
- для клиент-серверного варианта – в каталоге конфигурационных файлов, доступных серверу BAF;
- для файлового варианта с прямым подключением – в каталоге конфигурационных файлов, доступных нужной версии клиентской прикладной программы;
- для файлового варианта с подключением через веб-сервер – в каталоге конфигурационных файлов, доступных расширению веб-сервера, обслуживающему данную информационную базу.
Для ОС Linux
Этот раздел описывает шаги по настройке операционной системы Linux для обеспечения создания дампов памяти при аварийном завершении программы.
Примечание
Рекомендации, приведенные в этом разделе, в полной мере применимы для ОС Fedora Core 4 и ее аналогов. Для других дистрибутивов ОС Linux название и синтаксис описанных команд могут отличаться. Сведения об этом можно найти в справочной системе вашего дистрибутива ОС Linux.
По умолчанию создание дампов аварийного завершения выключено. Поставщики дистрибутивов Linux рекомендуют включать создание дампов только на компьютерах, предназначенных для разработки, но не на компьютерах, используемых для реальной работы программы.
Включение автоматической генерации дампов
Формирование дампов аварийного завершения настраивается для всех процессов, выполняемых от имени конкретного пользователя. Чтобы включить автоматическую генерацию дампов, необходимо добавить в файл /etc/security/limits.conf следующие строки:
<username> soft core unlimited <username> hard core unlimited
Где <username> – имя пользователя, от имени которого выполняется прикладная программа BAS.
Определение имени и расположения дампов
Чтобы детализировать информацию о процессе, создавшем дамп аварийного завершения, а также разместить дампы в нужном каталоге диска, рекомендуется задать шаблон формирования имени дампа. Шаблон можно задавать как в рамках одного сеанса, так и на постоянной основе.
ВНИМАНИЕ!
Настройка, описанная в этом разделе, влияет на все процессы всех пользователей операционной системы. Это означает, что дампы аварийного завершения других пользователей, если для них включена генерация, будут храниться по указанному пути с выбранным шаблоном имени.
ВНИМАНИЕ!
Описанные ниже действия необходимо выполнять от имени пользователя root.
Чтобы задать шаблон имени и путь расположения дампов аварийного завершения, необходимо воспользоваться командой:
sysctl -w kernel.core_pattern=/tmp/core.%e.%p
Эта настройка будет действовать до следующей перезагрузки компьютера. Она определяет размещение дампов в каталоге /tmp и формирует имя файлов дампов:
- из префикса core;
- имени программного файла;
- идентификатора процесса, для которого был сформирован дамп аварийного завершения.
Чтобы задать имя шаблона и путь на постоянной основе, необходимо добавить следующую строку в файл /etc/sysctl.conf:
kernel.core_pattern=/tmp/core.%e.%p
Чтобы изменения, внесенные в файл, вступили в силу, необходимо выполнить команду:
sysctl -p
Путь, указанный в настройках, должен быть доступен для записи пользователям, от имени которых работают прикладные программы, формирующие дампы аварийного завершения.
Примеры файлов настройки технологического журнала
Приведенные ниже примеры предполагают, что программа установлена стандартным способом в каталог C:\Program Files\baf.
Важно учитывать, что при некоторых настройках в каталог технологического журнала могут выводиться данные очень большого объема. Поэтому на диске, где планируется размещение файлов технологического журнала, должно быть достаточно свободного места.
Далее приведено несколько примеров файлов logcfg.xml, содержащих наиболее часто используемые настройки технологического журнала.
Технологический журнал выключен
Если файл logcfg.xml отсутствует в каталоге конфигурационных файлов программы, технологический журнал не создается. Если файл logcfg.xml необходим для правильной настройки дампов, он не должен содержать ни одного элемента log. Приведенный ниже пример определяет необходимость создания полного дампа программы при ее аварийном завершении. Дампы размещаются в каталоге C:\baf\dumps.
<config xmlns="http://bas-soft.eu/tech-log">
<dump location="C:\baf\dumps" create="1" type="3"/>
</config>
Полный технологический журнал
Приведенное ниже содержимое файла logcfg.xml определяет вывод в технологический журнал всех событий со всеми свойствами. Журнал будет храниться в течение недели (168 часов). Объем выводимой информации при этом будет очень большим, однако она может быть полезна при анализе сложных нештатных ситуаций. Такие настройки рекомендуется использовать на этапе тестирования и при расследовании ошибок.
<config xmlns="http://bas-soft.eu/tech-log">
<log location="C:\baf\logs" history="168">
<event>
<ne property="name" value=""/>
</event>
<property name="all">
</property>
</log>
</config>
Обращения к СУБД
Следующий файл настроек определяет, что технологический журнал будет содержать только обращения программы к СУБД, а также информацию об ошибочных ситуациях. Объем выводимой информации меньше, чем при полном технологическом журнале, но также может быть очень большим.
<config xmlns="http://bas-soft.eu/tech-log">
<log location="C:\baf\logs" history="168">
<event>
<eq property="name" value="dbmssql"/>
</event>
<event>
<eq property="name" value="dbpostgrs"/>
</event>
<event>
<eq property="name" value="db2"/>
</event>
<event>
<eq property="name" value="dboracle"/>
</event>
<event>
<eq property="name" value="excp"/>
</event>
<property name="all">
</property>
</log>
</config>
Действия администратора и ошибки
Этот файл настроек создает технологический журнал небольшого объема, содержащий информацию о запуске и завершении программ, установлении и разрыве соединений с кластером серверов BAF, действиях администратора кластера и ошибочных ситуациях в работе системы. Такого журнала в большинстве случаев достаточно для расследования ошибочных ситуаций в программе.
<config xmlns="http://bas-soft.eu/tech-log">
<log location="C:\baf\logs" history="168">
<event>
<eq property="name" value="admin"/>
</event>
<event>
<eq property="name" value="conn"/>
</event>
<event>
<eq property="name" value="excp"/>
</event>
<event>
<eq property="name" value="proc"/>
</event>
<event>
<eq property="name" value="qerr"/>
</event>
<event>
<eq property="name" value="scom"/>
</event>
<property name="all"/>
</log>
</config>
По сравнению с предыдущим, приведенный ниже файл настроек добавляет все операции, длительность которых превышает 10 секунд. Это может быть полезно для выявления действий пользователей, выполнявшихся длительное время, например для их последующей оптимизации. Длительность событий выражается в сотнях микросекунд.
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://bas-soft.eu/tech-log">
<dump create="false"/>
<log location="C:\baf\logs" history="168">
<event>
<eq property="name" value="admin"/>
<gt property="duration" value="10000"/>
</event>
<event>
<eq property="name" value="conn"/>
<gt property="duration" value="10000"/>
</event>
<event>
<eq property="name" value="excp"/>
<gt property="duration" value="10000"/>
</event>
<event>
<eq property="name" value="proc"/>
<gt property="duration" value="10000"/>
</event>
<event>
<eq property="name" value="qerr"/>
<gt property="duration" value="10000"/>
</event>
<event>
<eq property="name" value="scom"/>
<gt property="duration" value="10000"/>
</event>
<property name="all"/>
</log>
</config>