Коллеги, начинаем серию статей, посвященных технологическому журналу.
В этой серии мы с вами рассмотрим практику использования полезного инструмента для расследования проблем производительности и стабильности 1С:Предприятие – технологического журнала.
Другие статьи из серии «Технологический журнал»:
«ТЖ: Настройка»
«ТЖ: Анализ логов»
«ТЖ: События и фильтры»
Далеко не все специалисты о нем знают, а умеют грамотно использовать лишь немногие. Попытаемся исправить ситуацию :)
Описание и включение технологического журнала
Что Вы узнаете из этой статьи?
- Описание и предназначение инструмента Технологический журнал
- Как включить Технологический журнал в 1С:Предприятие 8
- Принцип формирования и сохранения логов и дампов
Описание ТЖ
Технологический журнал (далее ТЖ) – это средство для логирования работы платформы на низком уровне.
ТЖ предназначен для расследования ошибок, анализа и диагностики различных проблем в работе платформы 1С:Предприятие.
С помощью ТЖ можно выяснить, какие запросы работают медленно и откуда они вызываются, при выполнении какого кода «падают» рабочие процессы сервера, куда «утекает» память и многое, многое другое.
Все инструменты анализа производительности платформы используют ТЖ для получения информации. При желании и доскональном изучении вопроса с помощью ТЖ вы можете написать свой инструмент анализа производительности.
ТЖ можно собирать как для процессов сервера 1С, так и для клиентских приложений. Соответственно, и набор событий, которые можно фиксировать в ТЖ, будет отличаться.
Клиентские логи и дампы крайне редко вызывают интерес, поэтому в статье мы будем рассматривать ТЖ исключительно с точки зрения сервера. Тем не менее все, что здесь написано, также подходит и для клиентских логов.
С помощью ТЖ можно собирать логи и настраивать формирование дампов в случае аварийного завершения работы процесса.
Логи – это файлы с расширением .log, где информация хранится в текстовом виде.
Дампы – это файл с расширением .mdmp, который содержит в себе содержимое оперативной памяти процесса на момент «падения».
Дамп бывает крайне необходим для расследования проблем стабильности платформы. Мы не можем самостоятельно анализировать дампы, т.к. у нас нет исходного кода платформы, но мы можем отправить их в техническую поддержку или на партнерский форум и получить решение нашей проблемы.
Включение ТЖ
По умолчанию технологический журнал включен и работает, но собирает очень ограниченный объем данных.
Под минимальным объемом данных подразумеваются 2 вещи:
1) Формирование дампов минимального размера в случае аварийного завершения работы процессов кластера 1С (ragent, rmngr или rphost).
По умолчанию дамп создается в каталоге:
%USERPROFILE%\Local Settings\Application Data\1C\1Cv82\dumps
Если вы используете Windows Vista и выше, то будет использоваться каталог:
%LOCALAPPDATA%\1C\1Cv82\dumps
Для 8.3 вместо каталога 1Cv82 используется 1Cv8.
2) Для 8.3 в минимальный ТЖ входит формирование логов с одним событием SYSTEM с уровнем Error.
Логи сохраняются в каталоге:
%USERPROFILE%\Local Settings\Application Data\1C\1Cv8\logs
Для Windows Vista и старше используется каталог:
%LOCALAPPDATA%\1C\1Cv8\logs
Данные логи по умолчанию будут хранится 24 часа, после чего платформа будет удалять файлы логов, которые превышают этот порог.
Чаще всего информации из ТЖ по умолчанию недостаточно, и необходимо его настраивать вручную.
Чтобы произвести тонкую настройку ТЖ, необходимо создать файл logcfg.xml с определенной структурой в определенном месте.
Данный файл необходимо разместить в каталоге:
C:\Program Files\1Cv82\conf (для 8.3 каталог 1Cv8)
В этом случае настройки ТЖ будут действовать для всех версий 1С, которые установлены на данном компьютере, и для всех пользователей. Этот вариант используется чаще всего, и именно его рекомендуем применять.
При настройках ЦУПа, облачных сервисов контроля производительности и прочих инструментов, где надо указывать путь к logcfg, также лучше использовать именно этот каталог, иначе при обновлении платформы или изменении имени пользователя, под которым запущена служба сервера 1С, описанные инструменты перестанут работать и придется менять настройку.
Тем не менее есть и другие варианты, хотя и используются они гораздо реже. Опишу лишь то, что с наибольшей вероятностью вам может понадобится.
Чтобы настроить ТЖ только для одной версии платформы, размещаем logcfg.xml в каталоге:
C:\Program Files\1Cv82\8.2.19.106\bin\conf
Где 8.2.19.106 – это номер нужной вам версии.
Крайне редко, но все же, может возникнуть необходимость настроить ТЖ отдельно для каждого пользователя, под которым запущена служба сервера 1С.
Тогда размещаем logcfg в каталоге:
%USERPROFILE%\Local Settings\Application Data\1C\1Cv82\Conf
Для ОС Windows Vista и старше:
%LOCALAPPDATA%\1C\1Cv82\Conf
Это может потребоваться, если у вас, например, 1 служба сервера 1С используется как рабочая, а вторая для отладки. При необходимости можно запустить службы под разными пользователями и собирать ТЖ только для одной из них, чтобы не загружать второй сервер и не собирать в логах лишние данные, либо сделать для каждой из служб свои настройки ТЖ.
Настройки из logcfg считываются не моментально, а каждые 60 секунд, причем каждый из процессов кластера считывает файл настроек независимо от других процессов. Например, сначала могут появиться логи процесса rmngr и только через 45 секунды логи rphost.
Для выключения ТЖ достаточно удалить или переименовать файл logcfg.xml.
Бурмистров Андрей
В следующих статьях рассмотрим нюансы настройки ТЖ и практику использования.
А пока закрепите полученный материал на своей тестовой информационной базе :)
PDF-версия статьи для участников группы ВКонтакте
Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Статья в PDF-формате
Вы можете скачать эту статью в формате PDF по следующей ссылке:
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Если вы хотите узнать больше об оптимизации 1С и быть экспертом в этой области – пройдите наш новый курс «Оптимизация производительности 1С:Предприятие».
Здравствуйте, Андрей. Вы написали “…необходимо создать файл logcfg.xml с определенной структурой в определенном месте.”, а как узнать о структуре файла? У пользователя периодически появляется ошибка блокировки HRESULT=80040E31, хотелось бы её причину отследить…
Евгений, приветствую!
У вас 2 вопроса, отвечу по очереди.
1. Как узнать о структуре файла?
Структура файла ТЖ описана в нашей статье https://курсы-по-1с.рф/articles/технологический-журнал-настройка
Так же можно найти описание ТЖ в документации на ИТС, в руководстве администратора и еще очень много. Проще всего для настройки ТЖ использовать обработку на ИТС.
2. Периодически появляется ошибка блокировки HRESULT=80040E31
На самом деле для расследования этой проблемы исследовать логи ТЖ вам не нужно. Это проблема ожидания на блокировках причем на уровне СУБД, а для ее исследования вам нужен инструмента анализа ожиданий на блокировках. Вы можете для этих целей использовать платный ЦУП (Центр управления производительностью) или бесплатный сервис анализа блокировок от Гилева. С помощью одного из этих инструментов вы сможете определить причину ожиданий и если есть нужные знания решить проблему.
В самом ТЖ вы лишь увидите текст ошибки по таймауту из-за блокировки, хотя этот текст проще вам будет посмотреть в журнале регистрации (если он конечно включен).
Благодарю за Ваш ответ!
Пожалуйста!
Интересного обучения!
Подскажите, можно ли отловить в ТЖ изменения настроек Журнала регистрации, например, отключение записи событий?
Специального такого события нет, но можно посмотреть что настройки ЖР были изменены, хотя и нельзя определить что именно там было изменено.
В случае измерения настроек в ТЖ будет вот такая строка:
Вы можете сделать фильтр на свойства t:applicationName=Designer и MName=changeLogMngrInfo
Большое спасибо
Наберусь наглости задать еще один вопрос по журналу регистрации.
Если в кластере два центральных сервера, то как идет запись в ЖР?
Если ничего не настраивать, то журналы регистрации для одной и той же ИБ на серверах разные? Или дублируются? Как сделать так, чтобы все писалось только в одну папку в служебном каталоге кластера одного из серверов? Если помощью требований назначения функциональности запретить одному серверу работать с журналом регистрации, то события будут писаться в папку другого сервера или вообще не будут для сеансов на данном сервере?
>Если в кластере два центральных сервера, то как идет запись в ЖР?
Если ничего не настраивать, то журналы регистрации для одной и той же ИБ на серверах разные?
Журнал пишется только на одном из серверов если ничего дополнительно не настравивать.
>Или дублируются?
Нет, журнал не дублируется.
>Как сделать так, чтобы все писалось только в одну папку в служебном каталоге кластера одного из серверов?
Для этого необходимо с помощью требований назначения функциональности перенести сервис ЖР на какой-то один сервер.
>Если помощью требований назначения функциональности запретить одному серверу работать с журналом регистрации, то события будут писаться в папку другого сервера или вообще не будут для сеансов на данном сервере?
Будут писаться в папку другого сервера.
Рекомендуется закрепить ЖР за каким-то одним из серверов, что бы не получилась нижеописанная ситуация.
Допустим с помощью требований назначения функциональности указано что одна база работает на отдельном сервере, другие на другом. В этом случае ЖР действий по этой базе будет вестись на отдельном сервере, ЖР по другим базам будет на другом сервере, и это нужно учитывать при резервном копировании. Так же возможна ситуация когда работы с отдельной базой или рег. заданием вынесли на отдельный сервер, а потом вернули обработно. Тогда всей действия в этой базе или в этом рег. задании которые были за период пока они выполнялись на отдельном сервере, будут только в ЖР на этом отдельном сервере. С другими серверами кластера эта информация не синхронизируется. Поэтому что бы не рисковать, рекомендуется сделаять явное указание где хранить ЖР, в таком случае ЖР всегда будет храниться в одном месте при любых условиях.
Еще раз большое спасибо
Еще раз спасибо, а отследитьв ТЖ “обрезание” ЖР можно?
Насколько мне известно нет, можно лишь так же как и раньше отследить что с настройками ЖР были произведены какие-то действия.
здравствуйте! сформированный файл logcfg.xml нужно положить в папку где установлен клиент? или обязательно на сервере приложений 1с? судя по некоторым сообщениям у вас на сайте, я понял что положив файлик в каталог C:\Program Files (x86)\1cv8\conf, как пример, на 64х системе, на сервере терминалов как пример, логи будут собираться только клиентские, это так?
Можно положить и туда и туда, можно собирать логи и клиентские и серверные.
Если 32х разрядный сервер 1С установлен на сервере терминалов, тогда будут собираться и клиентские и серверные логи.
Здравствуйте.
Почему совершенно не освещён вопрос для платформы под Linux? Уже почти два года как она существует, и уже есть много успешно работающих проектов.
Добрый день, Петр!
Курс, который будет освещать эту тему и ряд других сейчас в разработке.
Добрый день!
В предыдущих статьях была удобная возможность сразу сохранить в pdf. Можно и в этих сделать для лентяев? :-)
Добрый день!
Да, сделаем.
Постараемся до конца этой недели :)