Администрирование · 13 мин
Технологический журнал 1С: назначение, настройка и анализ
Технологический журнал 1С — что это, зачем нужен, как включить и настроить logcfg.xml, какие события фиксировать и как анализировать логи без вреда для производительности.
Технологический журнал 1С — это встроенный механизм протоколирования, который фиксирует события работы платформы 1С:Предприятие на уровне самого «движка», а не прикладного решения. В отличие от журнала регистрации, который пишет действия пользователей и прикладные события, технологический журнал (сокращённо ТЖ) записывает низкоуровневые операции: запросы к СУБД, вызовы кластера серверов, ошибки, взаимоблокировки, длительные операции и исключения.
Именно ТЖ — главный инструмент диагностики, когда система «тормозит», падает с непонятной ошибкой или зависает без видимой причины. По его записям можно восстановить последовательность событий: какой запрос к базе данных выполнялся, сколько времени занял, какой процесс его инициировал и что произошло дальше. Без технологического журнала анализ таких проблем превращается в гадание.
Журнал ведётся в текстовые файлы на диске и управляется конфигурационным файлом logcfg.xml. Администратор сам определяет, какие события фиксировать, с какой детализацией, как долго хранить логи и куда их складывать. Гибкость настройки позволяет включать как точечный сбор по одному событию, так и полный дамп всех операций — но последний режим сильно нагружает дисковую подсистему и применяется только на короткое время для расследования инцидентов.
Чем технологический журнал отличается от журнала регистрации
Эти два механизма часто путают, хотя они решают разные задачи. Журнал регистрации — прикладной инструмент: он фиксирует входы пользователей, изменение документов, ошибки в коде конфигурации. Его данные хранятся в самой информационной базе и просматриваются штатно из конфигуратора или предприятия.
Технологический журнал работает ниже уровнем. Он пишется процессами платформы (ragent, rmngr, rphost, rproc и клиентскими приложениями) независимо от прикладного кода. Если конфигурация «упала» до того, как успела записать ошибку в журнал регистрации, ТЖ всё равно зафиксирует исключение, дамп или аварийное завершение процесса.
Журнал регистрации и технологический журнал
Прикладные события: действия пользователей, изменения данных, ошибки кода. Хранится в базе, доступен из конфигуратора. Не видит внутренние операции платформы.
Системные события: запросы к СУБД, вызовы кластера, взаимоблокировки, дампы. Пишется в файлы на диске, настраивается через logcfg.xml. Не содержит прикладного контекста документов.
Практический вывод: для аудита действий пользователей используйте журнал регистрации, для расследования падений, блокировок и проблем производительности — технологический журнал. В серьёзных инцидентах данные обоих источников сопоставляют по времени.
Какие события фиксирует технологический журнал
Платформа поддерживает десятки типов событий, каждое отвечает за свой слой работы системы. Настраивать все подряд не нужно — выбирают те, что соответствуют задаче диагностики.
Тексты запросов, длительность, планы. Основа анализа медленных запросов
Аварийные ситуации платформы и место в коде, где они возникли
Управляемые блокировки 1С, взаимоблокировки, превышения времени ожидания
События сервера 1С: соединения, процессы, распределение нагрузки
Длительные сервисные вызовы, полезны при анализе узких мест
Утечки памяти в процессах кластера
Каждое событие имеет свойства, которые можно использовать в фильтрах: длительность, имя пользователя, имя компьютера, текст запроса. Например, событие DBMSSQL с фильтром по длительности позволит писать в лог только запросы длиннее заданного порога — это стандартный приём поиска «тяжёлых» запросов.
Где находятся файлы журнала и как задаётся каталог
По умолчанию, если конфигурационный файл не создан, платформа пишет минимальный набор событий (аварийные завершения и дампы) в стандартный каталог. В Windows это подкаталог 1cv8 внутри %APPDATA%\1C\1cv8\conf\ для настроек и служебных каталогов вида C:\ProgramData\1C\1cv8\ для серверных логов; в Linux — каталоги внутри /opt/1cv8/ и домашних каталогов пользователей, от имени которых работают процессы.
Реальное расположение зависит от того, какой процесс пишет лог: серверный rphost использует один каталог, толстый клиент на рабочей станции — другой. Поэтому при диагностике проблемы конкретного пользователя ТЖ иногда включают прямо на его машине, а не только на сервере.
В файле logcfg.xml каталог задаётся явно через элемент <log location="...">. Рекомендуется выносить логи на отдельный диск с достаточным запасом места: при интенсивной записи объём может расти на гигабайты в час.
Как настроить logcfg.xml: структура и пример
Настройка выполняется созданием файла logcfg.xml в каталоге конфигурации платформы: C:\Program Files\1cv8\<версия>\bin\conf\ на сервере Windows или /opt/1cv8/x86_64/<версия>/conf/ в Linux. Для клиентского приложения файл кладётся в каталог conf установленной платформы на рабочей станции.
Файл описывает одно или несколько правил <log>: какие события писать, с какими условиями, куда и сколько хранить. Минимальный рабочий пример для поиска медленных запросов и взаимоблокировок выглядит так:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1clogs\slow" history="24">
<event><eq property="name" value="DBMSSQL"/></event>
<event><eq property="name" value="TDEADLOCK"/></event>
<event><eq property="name" value="TLOCK"/></event>
<event><eq property="name" value="EXCP"/></event>
<property name="all"/>
</log>
</config>Здесь history="24" означает хранение логов за последние 24 часа, после чего старые файлы удаляются автоматически. Элементы <event> задают перечень событий, а <property name="all"/> включает запись всех свойств события. Для фильтрации по длительности добавляют элемент <conditions> с условием вида <gt property="duration" value="1000000"/> — длительность указывается в микросекундах.
- 1Определите, на каком процессе возникает проблема: сервер 1С, клиент или оба
- 2Создайте каталог для логов на диске с запасом свободного места
- 3Создайте logcfg.xml в каталоге conf нужной версии платформы с нужными событиями и фильтрами
- 4Убедитесь, что у учётной записи службы сервера 1С есть права на запись в каталог логов
- 5Дождитесь воспроизведения проблемы — перезапуск служб обычно не требуется, платформа подхватывает файл
- 6Проанализируйте логи, затем отключите или сократите сбор, удалив или переименовав logcfg.xml
Как читать и анализировать файлы журнала
Файлы ТЖ — текстовые, с расширением .log, сгруппированные по часовым каталогам и процессам. Каждая строка содержит метку времени, длительность, имя события и пары «свойство=значение». Формат компактный, но при больших объёмах читать его вручную неудобно.
Для анализа применяют несколько подходов. Простейший — поиск по файлам в любом редакторе с поддержкой больших файлов: по имени события, имени пользователя или фрагменту текста запроса. Для регулярной работы используют специализированные инструменты: консоль анализа технологического журнала (обработки с портала 1С и сторонние разработки), штатную «Центр администрирования»-средства, а также связку с системами сбора логов вроде Elasticsearch, когда логи выгружаются в централизованное хранилище.
Как проверить, что ТЖ работает
Создаются подкаталоги с именами процессов и .log-файлы с записями
Каталог пуст — проверьте путь к logcfg.xml, синтаксис XML и права доступа
Строки содержат ожидаемые события (DBMSSQL, EXCP и др.) с метками времени
Пишутся не те события — ошибка в именах событий или фильтрах
Нагрузка на диск умеренная, пользователи не замечают замедления
Резкий рост дисковых операций — сузьте список событий или добавьте фильтры по длительности
Типовой приём при анализе взаимоблокировки: найти событие TDEADLOCK, посмотреть время, затем поднять записи TLOCK и DBMSSQL обоих участвующих процессов за секунды до события — так восстанавливается картина, кто какие ресурсы захватил.
Типовые сценарии использования
Диагностика медленной работы
Пользователи жалуются, что отчёт или проведение документа «висит». Включается сбор DBMSSQL (или события соответствующей СУБД) с фильтром по длительности. После воспроизведения проблемы в логе видны конкретные запросы, их длительность и контекст вызова. Дальше запрос анализируется средствами СУБД — по плану выполнения.
Расследование аварийных завершений
Если рабочий процесс rphost падает, в ТЖ фиксируется событие EXCP и формируется дамп. По стеку вызовов и контексту можно понять, связано ли падение с конкретной операцией, расширением или внешней компонентой, и при необходимости передать дамп в службу поддержки.
Поиск источника блокировок
События TLOCK, TTIMEOUT и TDEADLOCK показывают, какие сеансы конкурируют за одни данные. Это основной способ найти регламентное задание или интеграцию, которая пересекается по данным с работой пользователей.
Как выбрать набор событий
Ограничения, риски и частые ошибки
Технологический журнал — мощный инструмент, но у него есть границы. Он не показывает прикладную логику: вы увидите SQL-запрос, но не название документа, который его породил (только контекст кода). Для связи с бизнес-сущностями ТЖ сопоставляют с журналом регистрации по времени и пользователю.
Постоянно включённый подробный ТЖ — антипаттерн. Запись каждого запроса к СУБД в нагруженной системе генерирует огромный поток данных, расходует диск и добавляет накладные расходы. Правильный подход: постоянно держать минимальный набор (ошибки, взаимоблокировки), а подробный сбор включать на время расследования.
Когда технологического журнала недостаточно
ТЖ отвечает на вопрос «что делала платформа», но не всегда объясняет «почему». Если лог показывает медленный запрос, следующий шаг — анализ плана запроса и индексов средствами СУБД. Если видны частые исключения в конкретном модуле — нужен отладчик конфигуратора. Если проблема в сети между сервером 1С и СУБД — потребуется мониторинг инфраструктуры.
Поэтому ТЖ рассматривают как первый уровень диагностики: он локализует проблему и даёт факты, на основании которых выбирают более глубокий инструмент. Комбинация «технологический журнал + журнал регистрации + мониторинг СУБД» закрывает подавляющее большинство инцидентов производительности и стабильности.
Что важно запомнить
Технологический журнал — низкоуровневый лог платформы 1С, управляемый файлом logcfg.xml. Включайте только нужные события с фильтрами, ограничивайте срок хранения, следите за диском и правами доступа. Для аудита действий пользователей используйте журнал регистрации, для диагностики сбоев и производительности — ТЖ.
Частые вопросы о технологическом журнале 1С
Нужно ли перезапускать сервер 1С после создания logcfg.xml?
Обычно нет: платформа периодически проверяет наличие конфигурационного файла и подхватывает его автоматически. Если сбор не начался в течение нескольких минут, проверьте путь к файлу и синтаксис XML — это самые частые причины.
Сильно ли технологический журнал замедляет работу системы?
Минимальный набор событий (ошибки, взаимоблокировки) практически не влияет на производительность. Заметную нагрузку создаёт запись всех запросов к СУБД без фильтров — поэтому для постоянного сбора оставляют узкий перечень событий, а подробный лог включают только на время расследования.
Можно ли включить ТЖ только для одного пользователя или базы?
Фильтрация в logcfg.xml поддерживает условия по свойствам события, включая имя пользователя и имя информационной базы. Это позволяет собирать лог точечно, например только по сеансам конкретного сотрудника, что резко снижает объём данных.
Чем открывать и анализировать большие файлы ТЖ?
Подойдут редакторы, работающие с большими файлами (Notepad++, Far), но удобнее специализированные обработки анализа технологического журнала — они группируют события по длительности и строят выборки. В крупных внедрениях логи выгружают в системы централизованного сбора для поиска и построения графиков.
Что делать, если каталог логов пуст после настройки?
Проверьте четыре вещи: файл logcfg.xml лежит в каталоге conf именно той версии платформы, которая запущена; XML валиден (нет незакрытых тегов); у учётной записи службы есть права на запись в целевой каталог; указанный каталог существует — платформа не всегда создаёт его сама.
Стоит ли держать технологический журнал включённым постоянно?
Да, но в минимальной конфигурации: события EXCP, TDEADLOCK, TTIMEOUT и аварийные дампы стоит собирать всегда — они почти не нагружают систему и бесценны при разборе инцидентов «задним числом». Развёрнутый сбор запросов и вызовов включайте только на период активной диагностики.