Примеры настроек технологического журнала

25.06.24

База данных - Технологический журнал

Шпаргалка по настройке технологического журнала.

Файл 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

Внешняя обработка "Настройка технологического журнала" с ИТС

Оглавление

Примеры настроек технологического журнала

 

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С

 
 По счетчику \\Memory\Available Mbytes видим, что объем доступной памяти близок к нулю. Что делать?

 

Комментарии

<?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С:Эксперту по технологическим вопросам, Основной курс (Богачев)

ТЖ технологический журнал транзакции блокировки шаблон пример logcfg.xml conf.cfg

См. также

Технологический журнал Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

15.11.2023    1145    7    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    3877    9    AlexSTAL    0    

47

Администрирование СУБД Технологический журнал Системный администратор Бесплатно (free)

Для расследования проблем производительности недостаточно просто проанализировать технологический журнал. Нужен парсинг контекста событий, его сопоставление с информацией из Extended Events и логов, агрегация огромного количества информации.

21.09.2023    6493    Andreynikus    14    

81

Технологический журнал Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

Целью данного решения является организация хранения и анализа данных из технологического журнала 1С с использованием стека Elasticsearch + Logstash + Kibana.

5 стартмани

18.09.2023    4146    huxuxuya    3    

25

Технологический журнал Мониторинг Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Приложение на мобильной платформе 1С Предприятие, позволяющее разбирать все, что может быть разобрано в командной строке linux, и выводить полученный результат типовыми методами системы компоновки данных. По мотивам направления Эксперт по технологическим вопросам

16.05.2023    3819    capitan    1    

24

Технологический журнал Системный администратор Программист Абонемент ($m)

Технологический журнал - мощный инструмент логирования, используемый для анализа проблем производительности 1С. Но он обладает одним огромным недостатком, в "сыром виде" он почти не поддается адекватному анализу из-за своей структуры. Существует довольно много способов "разобрать" технологический журнал, но все опробованные способы обладают теми или иными недостатками. Предлагаю вам мой вариант "велосипеда" для разбора ТЖ и хранения разобранного в различных форматах.

1 стартмани

12.12.2022    9182    44    Segate    26    

91
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bulpi 216 27.04.24 21:47 Сейчас в теме
"в этом примере настройки добавлен сбор планов запросов <plansql/>"

Не добавлен. Автор, поправьте
2. artemusII 36 28.04.24 20:06 Сейчас в теме
3. Andreynikus 1373 01.05.24 23:14 Сейчас в теме
Так как тех. журнал мною "горячо" любим, не смог пройти мимо -)
Хорошая статья, думаю многим будет полезно, только исправьте пожалуйста несколько неточностей.

Пример 2.
- Зачем собирать два разных события выполнения запроса? Что вы будите делать с текстом запроса SDBL?
- Почему для одного события фильтр по Durationus, а для другого по duration? Вы же в курсе что это разные свойства
с разными единицами измерений?
- Вам верно написали выше, план собираться с такими настройками не будет. Параметр plansql должен быть в
узле config, а не log как у вас сейчас.

Пример 4.
В условии <like property="Func" value="%Transaction%"/> знак процента в конце можно убрать, платформе это облегчит задачу по фильтрации и немного снизит нагрузку, а результат не изменится.

Пример 5.
Фильтр для события SDBL здесь можно сделать как в примере 4 и сократить число настроек, запись будет короче но
фильтрация будет чуть-чуть дольше. Либо в примере 4 сделать фильтр как в примере 5, тогда записей будет больше,
зато фильтрация будет идти быстрее.

Пример 6.
Событие EXCPCNTX можно не включать, оно автоматически будет фиксироваться если включен EXCP.

Ошибки по тексту
Строка лога имеет формат: мм:сс.ттттттт здесь одна буква "т" лишняя, там 6 цифр, а не 7.
Да и еще момент, одна миллионная секунды это не миллисекунда, а микросекунда.

В скрине из ЦУП вначале выделены оперативные показатели, зачем? Данные для них не берутся из тех журнала.

В разделе Полезные ссылки, поправьте первую ссылку, она не рабочая.
KirillZ44; kuzyara; user768319; +3 Ответить
4. user864894 02.05.24 08:54 Сейчас в теме
А как вот ошибку во вложении отловить?
Прикрепленные файлы:
5. Andreynikus 1373 02.05.24 15:07 Сейчас в теме
(4)
Включите событие EXCP, пример номер 6.
Оставьте свое сообщение