Логи 1С: где искать и как читать журналы регистрации и событий
Содержание
Лог в 1С — это журнал регистрации. В файловой базе он хранится рядом с базой, в каталоге 1Cv8Log, а открыть его можно прямо из программы: кнопка Главное меню → Все функции → Стандартные → Журнал регистрации. В Конфигураторе тот же журнал лежит в меню Администрирование → Журнал регистрации.
Журнал пишет, кто и когда входил в базу, какие документы менял, что выдало ошибку, какие регламентные задания отработали. Для разбора сбоя и обмена этого обычно хватает. Если нужна причина падения платформы, зависания или долгого запроса — подключают технологический журнал, он пишется отдельно текстовыми файлами и устроен сложнее.
Ниже — где физически лежат логи, как их открыть в клиент-серверной и файловой базе, как отфильтровать нужные записи и найти ошибку, и в каких случаях одного журнала регистрации мало.
Где хранится журнал регистрации и как его открыть
Расположение зависит от варианта базы.
- Файловая база. Журнал лежит в каталоге базы, в папке
1Cv8Log. С платформы 8.3.5 по умолчанию это один файл SQLite1Cv8.lgd. В более старом формате — набор файлов*.lgpи описание1Cv8.lgfв той же папке. - Клиент-серверная база
. Журнал каждой информационной базы хранится в каталоге кластера на сервере 1С (по умолчанию
srvinfo), в подкаталоге этой базы, также в папке1Cv8Log.
Открыть журнал можно двумя путями:
- Из 1С:Предприятия. Нажмите
Главное меню(значок в левом верхнем углу) →Все функции→Стандартные→Журнал регистрации. Если пункта «Все функции» нет, включите его:Главное меню → Сервис → Параметрыи поставьте флажок «Отображать команду “Все функции”». - Из Конфигуратора. Меню
Администрирование → Журнал регистрации. Открывается тот же журнал базы.
Рядовой пользователь видит в журнале только свои события и общие. Полную картину (все пользователи, системные события) показывает пользователь с правом администрирования.
Окно журнала — это таблица со столбцами: дата и время, пользователь, компьютер, приложение, событие, важность, комментарий и ссылка на данные. По двойному клику на строке открывается карточка события с подробностями: сеанс, соединение, метаданные, представление данных.
Настройка состава регистрируемых событий
По умолчанию журнал пишет почти всё, и на активной базе он быстро разрастается. Состав событий настраивается в Конфигураторе: Администрирование → Настройка журнала регистрации.
В диалоге настройки задают две вещи:
- Какие события регистрировать. Галочками включаются категории: вход и выход пользователей, изменение данных, операции с конфигурацией, ошибки, фоновые задания и т.д. Можно оставить только то, что реально разбираете.
- Как разделять хранение по периоду. Варианты: не разделять, по суткам, неделям, месяцам, годам. Разделение по периоду упрощает архивирование и ускоряет открытие журнала на большой базе.
Там же выбирается минимальный уровень важности, начиная с которого события попадают в журнал. Уровней четыре:
| Важность | Что это | Примеры |
|---|---|---|
| Ошибка | Операция не выполнена | исключение, сбой обмена, отказ регламентного задания |
| Предупреждение | Выполнено, но с замечанием | конфликт блокировок, нештатная ситуация |
| Информация | Штатное событие | вход пользователя, проведение документа |
| Примечание | Техническая запись | служебные сообщения платформы |
Если поставить минимальный уровень «Ошибка», журнал перестанет писать входы и изменения данных. На базе, где нужен аудит действий пользователей, оставляйте уровень «Информация».
Через какое-то время старый журнал стоит чистить. Сокращение журнала удаляет записи безвозвратно — перед операцией выгрузите нужный период в файл. Сократить журнал можно из Конфигуратора (Администрирование → Журнал регистрации → Сократить) или программно, глобальной функцией.
Фильтрация и отбор записей
На реальной базе в журнале сотни тысяч строк, поэтому работа начинается с отбора. В окне журнала нажмите «Установить отбор» (кнопка на командной панели) и задайте условия.
Отбирать можно по любому сочетанию полей:
- 🗓 период — от и до, вплоть до секунд;
- 👤 пользователь — один или несколько;
- 💻 компьютер и сеанс/соединение — чтобы поймать действия с конкретного рабочего места;
- ⚠️ важность — например, только «Ошибка» и «Предупреждение»;
- 📄 событие — вход, изменение данных, ошибка исполнения и др.;
- 🧩 метаданные и данные — конкретный справочник, документ или даже строка;
- 🖥 приложение — тонкий клиент, толстый клиент, веб-клиент, фоновое задание, COM-соединение.
Отбор по приложению часто экономит время: ошибки обменов и регламентных операций обычно идут от фонового задания, а не от пользователя. Поставьте отбор «важность = Ошибка» и «приложение = Фоновое задание» — и перед вами список всех сбоев автоматических процессов.
Если журнал открыт в режиме предприятия, отбор можно сохранить как настройку и быстро переключаться между «только ошибки за сегодня» и «действия конкретного пользователя».
Поиск и разбор ошибок по журналу
Когда пользователь жалуется «вылетела ошибка», порядок действий простой.
- Поставьте отбор по важности «Ошибка» и периоду за время сбоя (с запасом в пару минут).
- Если известен пользователь или компьютер — добавьте их в отбор.
- Откройте строку ошибки двойным кликом и прочитайте полный текст в карточке события — там он не обрезан, в отличие от столбца «Комментарий».
Что искать в карточке:
- полный текст исключения — часто в нём прямо указана причина (нет прав, не найден объект, нарушение уникальности);
- метаданные и данные — какой объект вызвал сбой;
- сеанс и соединение — чтобы связать ошибку с другими событиями того же сеанса;
- стек вызовов (если включён технологический журнал) — в каком модуле и строке произошло исключение.
Типовые ошибки и то, что они означают:
Если ошибка повторяется у фонового задания, откройте в предприятии список регламентных и фоновых заданий (Главное меню → Все функции → Стандартные → Регламентные и фоновые задания) — там видно расписание и последний результат каждого задания.
Технологический журнал: когда штатного мало
Журнал регистрации фиксирует прикладные события. Причины падения процесса, взаимоблокировки, долгие запросы к СУБД, утечки памяти он не показывает — для этого есть технологический журнал (ТЖ). Он пишется платформой в текстовые файлы и настраивается конфигурационным файлом logcfg.xml.
Файл кладут в каталог conf установленной платформы — обычно это C:\Program Files\1cv8\conf\. Настройки действуют на все базы этого сервера.
Минимальный пример — писать только исключения и контекст их возникновения:
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\logs\techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="EXCPCNTX"/>
</event>
<property name="all"/>
</log>
</config>
Здесь location — куда писать, history — сколько часов хранить (старые файлы платформа удаляет сама). Внутри <event> фильтруются нужные события по свойству name.
Частые события, которые смотрят на практике:
EXCP— исключения платформы (аварийные завершения, необработанные ошибки);TLOCK,TTIMEOUT,TDEADLOCK— установка блокировок, таймауты и взаимоблокировки;DBMSSQL/DBPOSTGRS— запросы к СУБД (для поиска долгих запросов);SDBL— запросы на внутреннем языке модели данных;CALL,SCALL— клиент-серверные вызовы.
ТЖ может писать гигабайты в час, если включить всё без фильтров. На рабочем сервере включайте только нужные события и ограничивайте history, иначе быстро забьёте диск. После диагностики ТЖ отключают (убирают или переименовывают logcfg.xml).
Записи ТЖ — это текст, разбитый по каталогам процессов (rphost, rmngr, ragent) и по часам. Ищут по ним обычным поиском по файлам (findstr в Windows, grep в Linux) или специализированными парсерами.
Логи кластера серверов 1С
В клиент-серверном варианте, кроме журнала регистрации каждой базы, есть логи самого кластера. Они лежат в каталоге кластера (по умолчанию srvinfo) и делятся по процессам:
- ragent — агент сервера, принимает подключения (порт по умолчанию
1540); - rmngr — менеджер кластера (порт
1541); - rphost — рабочие процессы, в которых исполняется код (диапазон портов задаётся в свойствах рабочего сервера).
Аварийное завершение процесса оставляет дамп в каталоге дампов (настраивается в том же logcfg.xml секцией dump). Дамп сам по себе читается только средствами 1С и обычно нужен для обращения в поддержку, но факт его появления — уже сигнал: процесс упал, а не «просто завис».
Посмотреть состав кластера, рабочие серверы и активные сеансы можно консолью администрирования серверов или утилитой командной строки rac. Например, список рабочих серверов и список сеансов:
rac cluster list
rac session list --licenses
Остановка службы агента сервера или перезапуск рабочего процесса оборвёт все активные сеансы пользователей. Делайте это только в согласованное технологическое окно и предупредив пользователей — для простого чтения логов останавливать ничего не нужно.
Если не уверены в конкретной команде rac, посмотрите доступные через rac help — придумывать параметры не стоит.
Выгрузка журнала и автоматический анализ
Журнал регистрации не обязательно читать глазами в окне. Его выгружают и обрабатывают внешними средствами.
Ручная выгрузка списка. В окне журнала есть команда вывести отобранные записи в табличный документ или текстовый файл (на командной панели, рядом с печатью/сохранением списка). Удобно, когда нужно передать коллеге или в поддержку конкретный фрагмент.
Программная выгрузка. В прикладном коде журнал пишут и читают глобальными функциями платформы:
// записать своё событие в журнал
ЗаписьЖурналаРегистрации("МойПроцесс.Этап",
УровеньЖурналаРегистрации.Информация, , , "Этап завершён");
// выгрузить журнал в XML-файл по отбору
Отбор = Новый Структура;
Отбор.Вставить("Уровень", УровеньЖурналаРегистрации.Ошибка);
ВыгрузитьЖурналРегистрации("C:\logs\errors.xml", Отбор);
Так в журнал добавляют собственные метки из обработок и обменов, а потом фильтруют по ним — это сильно упрощает разбор своих механизмов. Есть и обратная функция, ЗагрузитьЖурналРегистрации, — ею можно подгрузить ранее выгруженный XML, например чтобы разобрать журнал с другого сервера на своём рабочем месте.
Прямое чтение файла. В формате 1Cv8.lgd журнал регистрации — это обычная база SQLite. Её можно открыть сторонним SQLite-клиентом в режиме только для чтения и анализировать запросами, не заходя в 1С. Это выручает, когда база недоступна, а разобрать накопленные ошибки нужно. Открывайте копию файла, а не рабочий 1Cv8.lgd: запись в него посторонним процессом может повредить журнал.
Внешние инструменты. Для потокового анализа логи выгружают или перенаправляют в системы хранения и визуализации (например, стек Elasticsearch + Kibana) и строят дашборды по ошибкам и производительности. Текстовый технологический журнал парсят скриптами или готовыми утилитами разбора ТЖ. Для анализа производительности в комплекте для крупных внедрений идут специальные инструменты мониторинга.
Выбор зависит от масштаба: на одной базе хватает отбора в окне и ручной выгрузки, на нагруженном кластере имеет смысл настроить регулярную выгрузку и внешний анализатор.
Частые вопросы
Чем журнал регистрации отличается от технологического журнала?
logcfg.xml и нужен для диагностики падений, блокировок и долгих запросов.Почему в журнале нет нужного события?
Администрирование → Настройка журнала регистрации отключена его регистрация или выставлен слишком высокий минимальный уровень важности. Проверьте настройку и диапазон периода в отборе.Можно ли посмотреть журнал за прошлый год, если включено разделение по периодам?
Как уменьшить размер журнала регистрации?
Администрирование → Журнал регистрации → Сократить) до нужной даты. На будущее — уменьшите состав регистрируемых событий и включите разделение по периодам.