Файл logcfg.xml находится в каталоге конфигурационных файлов системы 1С.
Для Windows:
- C:\Program Files (x86)\1cv8\conf\logcfg.xml
или C:\Program Files\1cv8\conf\logcfg.xml
Для Linux:
- /opt/1cv8/conf/logcfg.xml
Расположение каталога конфигурационных файлов явно определено в файле conf.cfg
- C:\Program Files\1cv8\8.3.22.1750\bin\conf\conf.cfg
Внешняя обработка "Настройка технологического журнала" с ИТС
- TechnologicalLogSetup.epf - https://its.1c.ru/db/metod8dev/content/3474/hdoc
Оглавление
- 1. Все события
- 2. Длительные запросы
- 2.1 Планы запросов в конкретной файловой ИБ
- 2.2 План конкретного запроса
- 3. Все события конкретного пользователя >5 секунд
- 4. Транзакции
- 5. Управляемые блокировки
- 6. Заготовка с закомментированными блоками
- 7. Утечки памяти
- Комментарии
- Условия
- Структура файла
- Клиентские события
- Дополнительно
Примеры настроек технологического журнала
1. Все события logcfg_full.xml
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\LOGS" history="2">
<event>
<ne property="Name" value=""/>
</event>
<property name="all"/>
<system level="trace"/>
</log>
</config>
Сразу создает большой поток данных на нагруженных базах, не используется на продуктиве.
2. Длительные запросы logcfg_queries.xml
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="c:\1c_logs\queries_simple" history="4">
<event>
<eq property="name" value="DBMSSQL"/>
<ge property="duration" value="100000"/>
</event>
<event>
<eq property="name" value=" SDBL"/>
<ge property="duration" value="100000"/>
</event>
<property name="all"/>
</log>
<plansql/>
</config>
Стоит обратить внимание, что в этом примере настройки добавлен сбор планов запросов <plansql/>, который внесет дополнительные накладные расходы на сбор данных, однако позволит в случае нахождения подозреваемых запросов сразу посмотреть на план запросов и сделать выводы о проблемах. Без настройки <plansql/> сбор планов запросов по умолчанию не происходит.
2.1 Планы запросов в конкретной файловой ИБ
При использовании обработки "Консоль запросов" для управляемого приложения 8.3 в файле logcfg.xml создаётся новый раздел вот такого содержания:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump location="C:\Users\Kuznetsov_NA\AppData\Local\Temp\Dumps\80af5716-b134-4b1c-a38d-4658d1ac4196\" create="1" type="0" externaldump="1"/>
<!-- ConsoleQueriesBegin 06.05.2024 14:00:12 FILE="E:\BASES1C\INFOBASE_TEST-ERP2-MASTER"; -->
<log history="2" location="C:\Users\Kuznetsov_NA\AppData\Local\Temp\v8_E05B_93.1c_logs">
<event>
<eq property="name" value="SDBL"/>
<eq property="DBMS" value="DBV8DBEng"/>
<eq property="DataBase" value="INFOBASE_TEST-ERP2-MASTER"/>
</event>
<event>
<eq property="name" value="DBV8DBEng"/>
<eq property="DataBase" value="INFOBASE_TEST-ERP2-MASTER"/>
</event>
<property name="all"/>
<property name="sql"/>
<property name="plansqltext"/>
</log>
<!-- ConsoleQueriesEnd -->
<!-- ConsoleQueriesBegin -->
<plansql/>
<!-- ConsoleQueriesEnd -->
</config>
Важной особенностью при использовании этой консоли является то, что устанавливаемые из разных настройки баз не перетирают друг друга.
2.2 План конкретного запроса
Используется дополнительное уникальное поле
Запрос = Новый Запрос;
Запрос.Текст =
"Выбрать ""12345"",
Движения.Контрагент КАК Контрекент,
Движения.Сумма КАК Сумма";
Запрос.УстановитьПараметр("Контрагент", Ссылка);
Запрос.Выполнить();
и последующий фильтр по подстроке
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\LOGS" history="2">
<event>
<eq property="Name" value="SDBL"/>
<like property="sdbl" value="%12345%">
</event>
<property name="all">
</log>
</config>
3. Все события конкретного пользователя >5 секунд
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="c:\1c_logs\user1\" history="1">
<event>
<ne property="name" value=""/>
<gt property="duration" value="50000"/>
<eq property="usr" value="Иванов"/>
</event>
<property name="all"/>
</log>
</config>
4. Транзакции logcfg_trans.xml
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump location="c:\1c_logs\dumps" create="1" type="3"/>
<log location="c:\1c_logs\trans" history="600">
<event>
<eq property="name" value="SDBL"/>
<like property="Func" value="%Transaction"/>
</event>
<property name="all"/>
</log>
</config>
5. Управляемые блокировки logcfg_locks.xml
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="G:\LOGS\TLOCK" history="2">
<event>
<eq property="Name" value="TLOCK" />
</event>
<event>
<eq property="Name" value="TTIMEOUT" />
</event>
<event>
<eq property="Name" value="TDEADLOCK" />
</event>
<event>
<eq property="Name" value="SDBL" />
<eq property="Func" value="BeginTransaction" />
</event>
<event>
<eq property="Name" value="SDBL" />
<eq property="Func" value="RollbackTransaction" />
</event>
<event>
<eq property="Name" value="SDBL" />
<eq property="Func" value="CommitTransaction" />
</event>
<property name="all" />
</log>
</config>
6. Ошибки
Пример шаблона для быстрого включения лога ошибок с заранее подготовленным блоком трассировки всех событий.
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<!-- Журнал исключений. -->
<log location="D:\1C\Logs\EXCP" history="168">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="name" value="EXCPCNTX"/>
</event>
<property name="All"/>
</log>
<!-- Сохранение файлов аварийного завершения работы. -->
<dump location="D:\1C\Dumps" create="true" type="3"/>
<!-- Полный журнал с трассировкой и историей на 1 час. -->
<!--
<log location="D:\1C\Logs\FullTrace" history="1">
<event>
<ne property="Name" value=""/>
</event>
<property name="All"/>
</log>
<system level="Trace" />
-->
</config>
7. Утечки памяти
Утечки можно попробовать расследовать с помощью технологического журнала и событий LEAKS, MEM, сбора информации о циклических ссылках.
<?xml version="1.0" encoding="utf-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\Programs\1C\Logs\LeaksMem" history="168">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="LEAKS"/>
</event>
<event>
<eq property="Name" value="CALL"/>
</event>
<event>
<eq property="Name" value="MEM"/>
</event>
<property name="All"/>
</log>
<log location="C:\Programs\1C\Logs\ScriptCircRefs" history="168">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="SCRIPTCIRCREFS"/>
</event>
<property name="All"/>
</log>
<leaks collect="1">
<point call="server"/>
</leaks>
<mem/>
<scriptcircrefs/>
<dump create="true" location="C:\Programs\1C\DUMPS\" type="3" prntscrn="false" externaldump="1"/>
</config>
К сожалению, прикладные разработчики из дампа никакой полезной информации не смогут получить, т.к. у них нет ни исходников, ни PDB-файлов платформы. Дампы нужно направлять в 1С
Комментарии
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="G:\LOGS\TLOCK" history="2">
<!-- Многострочный
комментарий
как в html/xml -->
</log>
</config>
Условия
- eq – равно;
- ne – не равно;
- gt – больше;
- ge – больше или равно;
- lt – меньше;
- le – меньше или равно;
- like – соответствие маске.
Структура конфигурационного файла
ИТС Приложение 3. Описание и расположение служебных файлов:
https://its.1c.ru/db/v8321doc#bookmark:adm:TI000000394
Настройка Технологический журнал сервера 1С в Linux
http://www.gilev.ru/forum/viewtopic.php?f=27&t=1907
Описание почти всех событий технологического журнала
//infostart.ru/1c/articles/1195695/
Да, клиент тоже пишет свои события в свой клиентский ТЖ. Настраивается аналогично серверному, только на хосте клиента.
Пример настройки клиентского ТЖ для сбора ошибок тонкого клиента:
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<system level="trace" component="inet" />
<dump create="true" location="C:\DUMPS" type="3" prntscrn="false"/>
<log location="C:\LOGS" history="96">
<event>
<eq property="name" value="VRSREQUEST"/>
</event>
<event>
<eq property="name" value="VRSRESPONSE"/>
</event>
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="name" value="SYSTEM"/>
</event>
<property name="all"/>
</log>
<plansql/>
</config>
События VRSREQUEST, VRSRESPONSE, VRSCACHE подробно описаны в статье Описание почти всех событий технологического журнала, так же как и HASP и LIC.
ADDIN - подключение внешней компоненты
53:04.059002-1,ADDIN,1,level=INFO,process=1cv8c,OSThread=22100,Func=Attach,Location=ОбщийМакет.ДрайверСканераШтрихкодов,Class=ОбщийМакет.ДрайверСканераШтрихкодов,Result=1,Context=' МодульУправляемогоПриложения : 127 : Выполнить("СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы()"); : 1 : СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы() ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль : 351 : ВыполнитьОбработкуОповещения(Параметры.ОбработкаПродолжения); ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль : 1327 : ОбщегоНазначенияКлиентПереопределяемый.ПриНачалеРаботыСистемы(Параметры); ОбщийМодуль.ОбщегоНазначенияКлиентПереопределяемый.Модуль : 104 : ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверСканераШтрихкодов");'
SYSTEM - системные события, в данном случае инициализация кеша модуля повторного использования
53:01.356000-0,SYSTEM,1,level=INFO,process=1cv8c,OSThread=22100,operation=sdc_init_client,config_version=d3996ec927133f4596f536a28cdafef600000000,dictionary_hash=-1838667451,Context=' МодульУправляемогоПриложения : 82 : Выполнить("СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы()"); : 1 : СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы() ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль : 248 : ПользователиСлужебныйКлиент.ПередНачаломРаботыСистемы(Параметры); ОбщийМодуль.ПользователиСлужебныйКлиент.Модуль : 75 : ПараметрыКлиента = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске(); ОбщийМодуль.СтандартныеПодсистемыКлиентПовтИсп.Модуль : 96 : ПараметрыКлиента = СтандартныеПодсистемыВызовСервера.ПараметрыРаботыКлиентаПриЗапуске(Параметры);'
Приоритет расположения:
- Каталог ИБ -> Домашний каталог пользователя, под которым запущен процесс -> Каталог версии 1С -> Общий каталог всех платформ
Скрин откуда по-дефолту считывается logcfg.xml
Каталоги создаются по шаблону ИмяПроцесса_PIDПроцесса:
Файл настроек читается платформой раз в минуту.
Скрин с интервалом чтения в процесс эксплорере (фильтр path: logcfg.xml, process name: rphost)
Если он отсутствует, то ТЖ считается выключенным.
Файл лога именуется по шаблону ГГММДДЧЧ.log. Т.е. каждый час создаётся новый файл.
Строка лога имеет формат:
мм:сс.ттттттт-д, <ИмяСобытия>, <Уровень>, <Свойства>
где мм - минуты, сс - секунды, ттттттт - миллионная доля секунды(миллисекунды), д - длительность события (для 8.2 в десятитысячных долях секунды, для 8.3 в миллионных долях секунды)
01:33.503039-0,SDBL,6,process=rphost,p:processName=MyTempDbHost,OSThread=2424,t:clientID=45,t:applicationName=1CV8C,t:computerName=YY-COMP,t:connectID=11,SessionID=20,Usr=DefUser,AppID=1CV8C,DBMS=DBMSSQL,DataBase=YY-COMP\MyTempDbHost,Trans=1,Func=BeginTransaction,Context='Форма.Вызов : ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Модуль.ВыполнениеЗапросаSDBLНаСервере
ВнешняяОбработка.ТестированиеТехнологическогоЖурнала.Форма.Форма.Форма : 89 : НачатьТранзакцию();'
Так же шаблоны ТЖ доступны из ЦУП, пример https://its.1c.ru/db/metod8dev/content/6006/hdoc/_top/plansql
Полезные ссылки:
https://kursy-po-1c.ru/articles/технологический-журнал-анализ-логов/
https://its.1c.ru/db/metod8dev/content/5927/hdoc
https://do-1c.ru/articles/forspec/tech-journal
//infostart.ru/1c/articles/1195695/
Публикация создана по мотивам подготовки к 1С:Эксперту по технологическим вопросам, Основной курс (Богачев)