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

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

ТЖ 1С: что такое технологический журнал и зачем он нужен

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

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

Главное отличие ТЖ от журнала регистрации: журнал регистрации пишет прикладные события (кто, когда и какой документ изменил), а технологический журнал — работу самой платформы на уровне процессов, соединений и запросов. Когда база «тормозит», пользователь получает непонятную ошибку или сеанс аварийно завершается, именно ТЖ становится основным источником информации для диагностики.

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

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

Состав событий ТЖ достаточно широк и покрывает практически все уровни работы платформы. Администратор сам выбирает, какие категории событий включать в лог, — этим управляют настройки в logcfg.xml.

  • EXCP — исключительные ситуации, аварийно завершённые операции, тексты ошибок платформы.
  • DBMSSQL, DBPOSTGRS, DBORACLE, DB2 — запросы к соответствующей СУБД с текстом запроса и длительностью выполнения.
  • TLOCK, TDEADLOCK, TTIMEOUT — управляемые блокировки, взаимоблокировки и превышения времени ожидания.
  • CALL, SCALL — входящие и исходящие вызовы между процессами платформы (клиент — сервер — СУБД).
  • CONN — установка и разрыв соединений между компонентами.
  • PROC, EXCPCTX — контекст выполнения: какой процесс и фрагмент кода работал в момент события.
  • MEM, CLSTR — события, связанные с памятью и кластером серверов.

Каждое событие записывается с отметкой времени, длительностью (в микросекундах), именем процесса, номера соединения и сеанса, имени пользователя и компьютера. Благодаря этому по ТЖ можно восстановить цепочку: какой пользователь, в каком сеансе, какой запрос выполнял и сколько времени это заняло.

Как включить ТЖ через logcfg.xml

Технологический журнал активируется созданием файла logcfg.xml в каталоге conf рядом с исполняемыми файлами платформы. Для сервера 1С это каталог вида C:\Program Files\1cv8\<версия>\bin\conf, для клиентского приложения — аналогичный каталог на машине пользователя. В Linux-установках путь отличается, но принцип тот же: файл должен лежать в подкаталоге conf каталога bin.

Минимальный рабочий вариант конфигурации выглядит так:

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

Здесь location — каталог для файлов логов, history — время хранения в часах, а блок <event> задаёт фильтр событий (в примере — только исключения). После сохранения файла ТЖ начинает работать без перезапуска сервера: платформа перечитывает конфигурацию автоматически, обычно в течение минуты.

Порядок включения ТЖ
  1. 1
    Создайте на сервере отдельный каталог для логов, например D:\1clogs, и убедитесь, что у учётной записи службы сервера 1С есть права на запись в него.
  2. 2
    Создайте файл logcfg.xml в каталоге conf платформы с нужным набором событий и путём к логам.
  3. 3
    Подождите 1–2 минуты и проверьте, что в каталоге логов появились подкаталоги с именами процессов (rphost, rmngr, 1cv8 и т.д.) и файлы формата *.log.
  4. 4
    Воспроизведите проблему (ошибку или медленную операцию), затем отключите или сузьте сбор, чтобы не перегружать диск.
  5. 5
    Проанализируйте записи за нужный интервал времени по имени пользователя, сеансу или тексту ошибки.

Настройка фильтров: как не утонуть в логах

Главная ошибка при работе с ТЖ — включить «всё и сразу». Полный сбор запросов к СУБД на нагруженной базе даёт десятки гигабайт в сутки и сам по себе замедляет систему. Правильный подход — сужать сбор под задачу.

Фильтры задаются условиями <eq>, <ne>, <like>, <gt> по свойствам события. Например, чтобы собирать только запросы к MS SQL Server длительнее 5 секунд, используют событие DBMSSQL с условием по свойству duration. Длительность в ТЖ указывается в микросекундах, поэтому 5 секунд — это 5 000 000.

xml
<log location="D:\1clogs" history="48">
  <event>
    <eq property="name" value="DBMSSQL"/>
  </event>
  <event>
    <eq property="name" value="TDEADLOCK"/>
  </event>
  <event>
    <eq property="name" value="TTIMEOUT"/>
  </event>
  <property name="all"/>
</log>

Полезно разделять логи: один узел <log> пишет только ошибки постоянно (это дёшево по ресурсам), а второй — тяжёлые события вроде всех запросов, и его включают только на время расследования. Параметр history ограничивает глубину хранения, и старые файлы платформа удаляет сама.

Как читать и анализировать ТЖ

Файлы ТЖ — текстовые, с расширением .log, разбитые по часам и по процессам. Каждая строка начинается с метки времени и длительности, далее идут пары «свойство=значение». Формат не самый дружелюбный для чтения глазами, поэтому на практике применяют вспомогательные средства.

Для разбора используют: поиск по файлам (по имени пользователя, номеру сеанса, фрагменту текста ошибки), скрипты на PowerShell или Python, а также специализированные инструменты — например, консоль запросов и обработки для анализа ТЖ, которые группируют запросы по длительности и строят топ самых тяжёлых операций. В составе технологий 1С есть и центр администрирования с инструментами диагностики, но базовый анализ всегда начинается с самих файлов логов.

Типовая методика поиска причины «тормозов»: найти в ТЖ события DBMSSQL с большой длительностью, по свойствам Usr и SessionID определить пользователя и сеанс, по контексту (свойство Context или события EXCPCTX рядом) — какой прикладной код инициировал запрос. Дальше проблема решается уже на уровне запроса или кода конфигурации.

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

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

Появление логов
Норма

В каталоге логов созданы подкаталоги процессов и файлы *.log с актуальным временем

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

Каталог пуст — проверьте путь в logcfg.xml, права доступа и синтаксис XML

Содержимое записей
Норма

События содержат нужные свойства: пользователя, сеанс, длительность, текст запроса

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

События есть, но без контекста — добавьте нужные property или события PROC/EXCPCTX

Нагрузка на диск
Норма

Объём логов растёт умеренно, старые файлы удаляются по history

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

Логи растут стремительно — сузьте фильтры событий

Типовые сценарии применения ТЖ

Поиск причины ошибки у пользователя

Пользователь сообщает: «вылетела ошибка, я не запомнил текст». В ТЖ по событию EXCP за нужное время и по имени пользователя находится полный текст исключения и контекст, в котором оно возникло. Это намного быстрее, чем просить пользователя воспроизводить проблему.

Диагностика взаимоблокировок

Событие TDEADLOCK показывает, какие сеансы и на каких ресурсах заблокировали друг друга. По этим записям определяют, какие прикладные операции конфликтуют, и корректируют порядок обращения к данным в коде или настройки управляемых блокировок.

Расследование аварийного завершения

Если рабочий процесс rphost падает, ТЖ в сочетании с дампами (настраиваются там же, в logcfg.xml, через элемент dump) позволяет зафиксировать состояние процесса на момент сбоя и передать данные в техническую поддержку вендора при необходимости.

Типичные ошибки
01
Включение полного сбора всех событий на постоянной основе — переполнение диска и дополнительная нагрузка на продуктив.
02
Ошибка в пути location или отсутствие прав на запись — ТЖ молча не пишется, и администратор думает, что событий не было.
03
Поиск длительности в секундах вместо микросекунд — фильтры по duration настроены неверно, и нужные события отсекаются.
04
Анализ ТЖ без привязки к сеансу и времени — события разных пользователей перемешиваются, и выводы делаются неверные.
05
Забытый включённый ТЖ после расследования — логи копятся месяцами и съедают место.

ТЖ и другие инструменты диагностики

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

Что выбрать для диагностики

Журнал регистрации

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

Технологический журнал

Ошибки платформы, запросы к СУБД, блокировки, длительные операции. Требует настройки logcfg.xml и места на диске.

Средства СУБД (планы запросов, трассировка)

Глубокий анализ конкретного запроса. Сложнее связать событие с пользователем 1С без ТЖ.

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

Итог

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

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

Частые вопросы о технологическом журнале 1С

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

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

Где искать файлы ТЖ и как они называются?

Логи складываются в каталог, указанный в атрибуте location. Внутри создаются подкаталоги по именам процессов (rphost, rmngr, ragent, 1cv8 и другие), а файлы имеют формат вида ГГММДДЧЧ.log — по году, месяцу, дню и часу создания.

Сколько места на диске резервировать под ТЖ?

Зависит от набора событий и нагрузки. Сбор только ошибок (EXCP) занимает немного, а полный сбор запросов к СУБД на активной базе — гигабайты в сутки. Начинайте с узких фильтров, задайте history в 24–72 часа и понаблюдайте за фактическим ростом объёма.

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

Да, в logcfg.xml поддерживаются условия по свойствам события, включая имя пользователя (Usr) и другие свойства. Фильтр по конкретному пользователю резко сокращает объём логов и удобен, когда проблема воспроизводится у одного сотрудника.

Чем ТЖ отличается от журнала регистрации?

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

ТЖ пишется, но нужных событий в нём нет. Что проверить?

Сначала убедитесь, что событие вообще включено в фильтр и не отсекается условиями по длительности (помните про микросекунды). Затем проверьте, что проблема воспроизводилась на том же сервере или клиенте, где настроен logcfg.xml, — в кластере логи пишутся локально на каждом рабочем сервере.