К статье
Практический материал

Администрирование · 10 мин

Как смотреть технологический журнал 1С

Как включить и смотреть технологический журнал 1С: настройка logcfg.xml, просмотр событий, анализ ошибок, блокировок и долгих запросов.

Технологический журнал 1С — это текстовый протокол, в который платформа записывает служебные события: вызовы сервера, запросы к СУБД, блокировки, ошибки и обращения к кластеру. В отличие от журнала регистрации, который показывает действия пользователей на уровне прикладных объектов, технологический журнал фиксирует работу самой платформы «изнутри». Именно поэтому он незаменим при диагностике зависаний, взаимоблокировок, долгих запросов и необъяснимых ошибок.

По умолчанию технологический журнал либо отключён, либо пишет только аварийные события. Чтобы получить полезные данные, его нужно включить и настроить через конфигурационный файл logcfg.xml — именно там задаётся, какие события фиксировать и куда сохранять файлы. Дальше разберём, как это сделать на сервере и на клиенте, как читать содержимое журнала и как не навредить производительности.

Что такое технологический журнал и когда он нужен

Технологический журнал — это набор текстовых файлов с расширением .log, которые платформа 1С создаёт автоматически при работе. Каждый процесс (rphost, ragent, rmngr, клиентское приложение) ведёт свой файл, поэтому события распределены по процессам и по времени ротации. Записи имеют жёсткий формат: время с точностью до миллисекунд, длительность события, имя события и набор свойств.

Обращаться к технологическому журналу стоит в типовых ситуациях: пользователи жалуются на «тормоза» в конкретной операции, в журнале регистрации появляются ошибки СУБД, возникают взаимоблокировки, сеансы завершаются аварийно или нужно понять, какой запрос формирует отчёт. Для рутинного просмотра действий пользователей технологический журнал избыточен — для этого есть журнал регистрации в конфигураторе.

Как включить журнал через logcfg.xml

Настройка выполняется файлом logcfg.xml, который нужно разместить в подкаталоге conf каталога установки платформы (например, в каталоге вида C:\Program Files\1cv8\<версия>\bin\conf) или в каталоге служебных файлов сервера 1С. Если файла нет — платформа пишет только аварийные дампы в каталог по умолчанию.

Минимальный пример файла, включающего запись всех событий в указанный каталог:

xml
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1clogs" history="24">
    <event><eq property="name" value=""/></event>
    <property name="all"/>
  </log>
</config>

Параметр history задаёт, сколько часов хранить файлы: по истечении срока старые файлы удаляются автоматически. Если не ограничить глубину хранения и объём событий, журнал быстро заполнит диск — на нагруженном сервере полный протокол может занимать десятки гигабайт в сутки. После создания или изменения файла настройки подхватываются без перезапуска сервера, обычно в течение минуты.

Какие события фиксировать под конкретную задачу

Писать «всё подряд» почти никогда не нужно. Фильтр по событиям задаётся элементами event с условиями eq, like и другими. Для анализа производительности обычно интересны события DBMSSQL или DBPOSTGRS (запросы к СУБД) вместе с контекстом исполнения, для блокировок — события TLOCK, TDEADLOCK, TTIMEOUT, для ошибок — EXCP и EXCPCNTX.

Пример фильтра, который фиксирует только запросы длительнее 10 секунд (длительность указывается в микросекундах):

xml
<event>
  <eq property="name" value="DBMSSQL"/>
</event>
<property name="sql"/>
<property name="Context"/>
<conditions>
  <gt property="duration" value="10000000"/>
</conditions>

Отдельно полезно включить событие SDBL с длительностью — оно показывает обращения к базе на уровне языка запросов 1С, что упрощает сопоставление с кодом конфигурации. Для диагностики аварийных завершений добавьте события CLSTR, PROC и EXCP, а также настройте запись дампов элементом dump.

Где искать файлы журнала

Файлы появляются в каталоге, указанном в атрибуте location. Внутри платформа создаёт подкаталоги по имени процесса (например, rphost) и далее по идентификатору процесса. Имена файлов содержат дату и порядковый номер часа записи, например 24031514.log — файл за 14-й час 15 марта. Каждый процесс пишет свой файл, поэтому для полной картины события из разных файлов сопоставляют по времени.

На клиентском компьютере журнал включается аналогично — файл logcfg.xml кладётся в conf-каталог клиентской установки платформы. Это удобно, когда проблема воспроизводится только у конкретного пользователя: можно собрать протокол только с его машины, не нагружая сервер.

Порядок действий
  1. 1
    Создайте каталог для журналов и выдайте учётной записи сервера 1С права на запись в него
  2. 2
    Создайте logcfg.xml в каталоге conf платформы с нужным фильтром событий
  3. 3
    Подождите около минуты и воспроизведите проблемную операцию
  4. 4
    Проверьте, что в каталоге появились файлы .log с текущим временем
  5. 5
    Проанализируйте записи, затем сузьте фильтр или отключите сбор

Как читать содержимое журнала

Формат записи выглядит примерно так: 45:12.345678-123456,DBMSSQL,5,process=rphost,p:processName=...,OSThread=...,t:clientID=...,t:applicationName=...,Sql='SELECT ...',Rows=1,Context='...'. Первая группа — время и длительность в микросекундах, затем имя события, уровень вложенности и список свойств. Ключевые свойства для анализа: duration (длительность), Sql (текст запроса), Context (место в коде конфигурации), t:clientID (связь с сеансом).

Для ручного просмотра подойдёт любой редактор, устойчивый к большим файлам (например, Notepad++), но при регулярном анализе удобнее специализированные инструменты: консольные скрипты разбора, обработки для 1С или средства в составе Центра администрирования и сторонних решений мониторинга. Они группируют события по длительности и контексту, что вручную делать трудоёмко.

Контрольные точки

Как проверить результат

Появление файлов в каталоге location
Норма

Файлы .log создаются и растут во время воспроизведения операции

Тревожный признак

Каталог пуст — неверный путь, нет прав на запись или ошибка в синтаксисе logcfg.xml

Наличие нужных событий
Норма

В файлах есть строки с именами событий из фильтра (DBMSSQL, TLOCK и др.)

Тревожный признак

Событий нет — фильтр слишком узкий или условие по длительности завышено

Нагрузка на сервер
Норма

Работа пользователей не изменилась заметно

Тревожный признак

Растёт очередь диска и время отклика — фильтр слишком широкий, сократите сбор

Типовые сценарии анализа

Поиск причины медленной операции

Включите события DBMSSQL (или соответствующее вашей СУБД) с условием по длительности, воспроизведите операцию и отсортируйте записи по duration. По свойству Context определите, какой участок кода или отчёт порождает запрос, а по тексту Sql — какие таблицы участвуют. Дальнейшая оптимизация обычно сводится к пересмотру запроса, индексов или логики обхода данных.

Анализ взаимоблокировок

Событие TDEADLOCK фиксирует факт взаимоблокировки и участвующие сеансы. Сопоставьте записи TLOCK и TDEADLOCK по времени, чтобы понять, какие объекты захватывали конкурирующие транзакции. Частая причина — разный порядок записи связанных объектов в разных участках кода или избыточные управляемые блокировки.

Разбор аварийного завершения

Если рабочий процесс падает, ищите события EXCP и EXCPCNTX непосредственно перед моментом сбоя, а также дампы, если они включены. Сопоставьте время с ошибками в журнале регистрации и журналах СУБД — частая связка: ошибка на уровне СУБД (разрыв соединения, нехватка памяти) отражается в технологическом журнале как исключение.

Типичные ошибки
01
Включение полного журнала без history — диск переполняется, и сервер останавливается с ошибкой нехватки места
02
Анализ только одного файла процесса — событие распределено между rphost-процессами, и картина получается неполной
03
Игнорирование свойства Context — без него долгий запрос невозможно привязать к месту в конфигурации
04
Сбор журнала без воспроизведения проблемы — в огромном потоке событий нужный эпизод теряется
05
Ошибка в XML-синтаксисе logcfg.xml — платформа молча игнорирует файл, и журнал не пишется

Ограничения и альтернативы

Технологический журнал не заменяет другие инструменты диагностики. Журнал регистрации показывает прикладные события и действия пользователей, счётчики производительности ОС и СУБД — общее состояние ресурсов, а встроенные механизмы СУБД (планы запросов, представления активности) — детали исполнения на стороне базы данных. Комплексная диагностика почти всегда требует сопоставления данных из нескольких источников.

Учитывайте и ограничения самого журнала: он не показывает бизнес-логику напрямую, требует места на диске и аккуратной настройки, а разбор больших объёмов вручную трудоёмок. Для постоянного мониторинга имеет смысл смотреть в сторону профильных решений, которые собирают события технологического журнала централизованно и строят по ним отчёты.

Итог

Что важно запомнить

Технологический журнал включается через logcfg.xml в каталоге conf платформы. Настраивайте фильтр под конкретную задачу, ограничивайте глубину хранения, воспроизводите проблему во время сбора и отключайте полный протокол после анализа.

Частые вопросы

Технологический журнал и журнал регистрации — в чём разница?

Журнал регистрации фиксирует прикладные события: кто и что изменил в данных, входы пользователей, ошибки на уровне конфигурации. Технологический журнал пишет работу самой платформы: запросы к СУБД, блокировки, вызовы и исключения процессов. Для аудита действий пользователей достаточно журнала регистрации, для диагностики производительности и сбоев нужен технологический журнал.

Нужно ли перезапускать сервер 1С после изменения logcfg.xml?

Нет, платформа перечитывает файл автоматически, обычно в течение минуты. Если изменения не применяются, проверьте синтаксис XML и расположение файла — при ошибке платформа просто игнорирует настройки без сообщений.

Почему в каталоге нет файлов журнала?

Наиболее частые причины: файл logcfg.xml лежит не в том каталоге conf, у учётной записи службы сервера 1С нет прав на запись в указанный location, либо в XML допущена синтаксическая ошибка. Проверьте путь, права и валидность файла, затем подождите минуту и воспроизведите нагрузку.

Насколько технологический журнал замедляет работу?

Влияние зависит от объёма событий. Запись редких событий (ошибки, долгие запросы) практически незаметна, а полный протокол всех обращений к СУБД на нагруженном сервере создаёт серьёзную дисковую нагрузку. Поэтому полный сбор включают только на время диагностики.

Можно ли включить журнал только для одного пользователя?

На стороне сервера фильтрация по пользователю в logcfg.xml ограничена, но можно включить журнал на клиентском компьютере конкретного пользователя — тогда соберутся события его сеанса. Для серверных событий сеанс затем выделяют по свойствам t:clientID и t:computerName при разборе.

Чем открыть и разобрать большой файл журнала?

Для ручного просмотра подходят редакторы, работающие с большими файлами, с поиском по имени события и сортировкой по длительности. Для регулярного анализа удобнее инструменты разбора технологического журнала — они группируют события, строят топ долгих запросов и связывают записи по сеансам, что вручную занимает часы.