Администрирование · 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.
Минимальный рабочий вариант конфигурации выглядит так:
<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Создайте на сервере отдельный каталог для логов, например D:\1clogs, и убедитесь, что у учётной записи службы сервера 1С есть права на запись в него.
- 2Создайте файл logcfg.xml в каталоге conf платформы с нужным набором событий и путём к логам.
- 3Подождите 1–2 минуты и проверьте, что в каталоге логов появились подкаталоги с именами процессов (rphost, rmngr, 1cv8 и т.д.) и файлы формата *.log.
- 4Воспроизведите проблему (ошибку или медленную операцию), затем отключите или сузьте сбор, чтобы не перегружать диск.
- 5Проанализируйте записи за нужный интервал времени по имени пользователя, сеансу или тексту ошибки.
Настройка фильтров: как не утонуть в логах
Главная ошибка при работе с ТЖ — включить «всё и сразу». Полный сбор запросов к СУБД на нагруженной базе даёт десятки гигабайт в сутки и сам по себе замедляет систему. Правильный подход — сужать сбор под задачу.
Фильтры задаются условиями <eq>, <ne>, <like>, <gt> по свойствам события. Например, чтобы собирать только запросы к MS SQL Server длительнее 5 секунд, используют событие DBMSSQL с условием по свойству duration. Длительность в ТЖ указывается в микросекундах, поэтому 5 секунд — это 5 000 000.
<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) позволяет зафиксировать состояние процесса на момент сбоя и передать данные в техническую поддержку вендора при необходимости.
ТЖ и другие инструменты диагностики
Технологический журнал не заменяет остальные средства, а дополняет их. Журнал регистрации отвечает на вопрос «кто что изменил в данных», счётчики производительности ОС и СУБД показывают общую картину нагрузки, а ТЖ связывает конкретное событие платформы с конкретным сеансом и запросом.
Что выбрать для диагностики
Прикладные действия пользователей: документы, справочники, входы в систему. Не показывает запросы к СУБД и внутренние ошибки платформы.
Ошибки платформы, запросы к СУБД, блокировки, длительные операции. Требует настройки 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, — в кластере логи пишутся локально на каждом рабочем сервере.