Администрирование · 11 мин
Как почистить логи в 1С 8.3
Как почистить логи в 1С 8.3: сокращение журнала регистрации, очистка технологического журнала, настройка logcfg.xml и профилактика переполнения диска.
Логи 1С 8.3 — это журнал регистрации внутри информационной базы и технологический журнал на уровне сервера. Оба со временем разрастаются: журнал регистрации замедляет вход в базу и увеличивает размер файла 1Cv8.1CD или объём таблиц SQL, а технологический журнал способен заполнить диск сервера сотнями гигабайт текстовых файлов. Чистить их нужно регулярно и правильными инструментами, иначе можно потерять историю действий пользователей или остановить работу сервера.
Способ очистки зависит от того, где хранятся логи: в файловой базе, в клиент-серверном варианте или в каталоге технологического журнала. Ниже разобраны все три сценария с конкретными действиями, ограничениями и проверкой результата.
Какие логи есть в 1С 8.3 и где они хранятся
Прежде чем чистить, важно понять, что именно вы собираетесь удалять. В платформе 1С 8.3 существует несколько независимых механизмов протоколирования, и у каждого своё место хранения и свой способ очистки.
Журнал регистрации — встроенный механизм фиксации событий: входы и выходы пользователей, изменение данных, ошибки, фоновые задания. В файловой базе он хранится внутри каталога базы в подкаталоге 1Cv8Log (файлы в формате LGD/LGP), в клиент-серверном варианте — в таблицах СУБД.
Технологический журнал (ТЖ) — низкоуровневый лог работы платформы: запросы к СУБД, вызовы, ошибки, блокировки. Включается конфигурационным файлом logcfg.xml и пишется в каталог, указанный администратором. По умолчанию без logcfg.xml платформа пишет только дампы аварийных завершений в каталог dumps.
Дополнительно существуют логи сервера 1С (каталог srvinfo с файлами регистрации событий кластера) и логи СУБД (например, журнал транзакций MS SQL), но это уже отдельная тема администрирования серверной инфраструктуры.
Как сократить журнал регистрации через конфигуратор
Штатный и безопасный способ почистить журнал регистрации — функция «Сократить» в конфигураторе. Она удаляет события старше заданной даты и физически уменьшает объём, занимаемый журналом.
- 1Сделайте резервную копию базы (выгрузку в dt или копию каталога при монопольном доступе).
- 2Откройте конфигуратор, перейдите в меню Администрирование → Настройка журнала регистрации.
- 3Нажмите кнопку «Сократить».
- 4Укажите дату, до которой удаляются события, и обязательно задайте файл для сохранения удаляемой части журнала.
- 5Подтвердите операцию и дождитесь завершения — на больших журналах это может занять продолжительное время.
- 6Проверьте, что журнал открывается и содержит события после указанной даты.
Обратите внимание на поле «Сохранять удаляемые события в файл». Если оставить его пустым, старая история будет удалена безвозвратно. Для баз, где журнал нужен для аудита или расследования инцидентов, всегда сохраняйте выгрузку в отдельный файл и убирайте его в архив.
Для клиент-серверных баз сокращение журнала лучше выполнять в период минимальной нагрузки: операция блокирует часть операций с журналом и при большом объёме может идти долго. Пользователям на это время желательно завершить работу, хотя строгого монопольного режима сама операция не требует.
Настройка уровня регистрации событий
В том же окне «Настройка журнала регистрации» можно уменьшить количество записываемых событий: отключить регистрацию информационных сообщений и оставить только ошибки, предупреждения и важные действия. Это не чистит уже накопленное, но замедляет рост журнала в будущем.
Разделение журнала регистрации по периодам
В файловых базах журнал регистрации можно настроить на хранение по периодам: день, неделя, месяц, квартал, год. При разделении по периодам старые фрагменты хранятся отдельными файлами, и их можно удалять вручную из каталога 1Cv8Log без запуска процедуры сокращения.
Чтобы включить разделение, откройте конфигуратор: Администрирование → Настройка журнала регистрации → кнопка «Изменить» в группе «Разделять хранение журнала по периодам». После смены режима платформа создаст новый файл журнала, а старый останется рядом — его можно заархивировать или удалить, если история не нужна.
Если журнал уже разделён по периодам, чистка сводится к простому действию: завершите работу всех пользователей с базой, откройте каталог базы, перейдите в 1Cv8Log и удалите или переместите файлы старых периодов. Текущий период трогать нельзя — база должна видеть актуальный файл журнала.
Как почистить технологический журнал
Технологический журнал очищается не из конфигуратора, а средствами операционной системы. Файлы ТЖ хранятся в каталоге, заданном параметром Location в logcfg.xml, внутри — подкаталоги по именам процессов (rphost, ragent, rmngr) с текстовыми файлами вида .log и .txt.
Порядок очистки зависит от того, идёт ли сбор прямо сейчас. Если ТЖ включён постоянно, сначала отключите его или ограничьте в logcfg.xml, иначе платформа продолжит писать в те же файлы. Затем удалите старые каталоги с датами в именах — активные файлы текущего сеанса работы процессов удалить не получится или делать этого не стоит.
Пример команды для Linux, удаляющей файлы ТЖ старше 7 дней:
find /var/log/1c/technological_journal -type f -mtime +7 -deleteНа Windows аналогичную задачу решает планировщик заданий со скриптом PowerShell, удаляющим файлы старше заданного срока. Главное — не задать слишком короткий срок хранения: при расследовании инцидента логи за последние несколько дней часто оказываются решающими.
Ограничение объёма ТЖ через logcfg.xml
Правильная профилактика — не ручная чистка, а настройка ротации. В logcfg.xml для элемента log задаются параметры history (срок хранения в часах) — платформа сама удаляет устаревшие файлы. Пример фрагмента конфигурации:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1clogs" history="72">
<event><eq property="name" value="EXCP"/></event>
<property name="all"/>
</log>
</config>В этом примере журнал хранится 72 часа и пишет только исключения (ошибки). Чем шире набор событий, тем быстрее растёт объём: полный сбор с событиями DBMSSQL и CALL на нагруженном сервере может генерировать десятки гигабайт в сутки, поэтому включайте детальный ТЖ только на время диагностики.
Очистка журнала регистрации в клиент-серверной базе
В клиент-серверном варианте журнал регистрации хранится в таблицах СУБД, и сокращение через конфигуратор работает так же, но с нюансами. Удаление строк из таблиц журнала не всегда автоматически уменьшает размер файлов базы данных на диске — в MS SQL может потребоваться сжатие (shrink) файлов, в PostgreSQL — обслуживание таблиц.
После сокращения журнала проверьте фактический размер базы средствами СУБД. Если место на диске не освободилось, выполните штатные процедуры обслуживания вашей СУБД в окне обслуживания, согласовав с администратором баз данных. Самостоятельное сжатие продуктивной базы без понимания последствий (фрагментация индексов, длительные блокировки) лучше не проводить.
Проверка результата и профилактика
После очистки убедитесь, что всё работает штатно: журнал регистрации открывается из конфигуратора и из режима предприятия, в нём присутствуют события после даты сокращения, новые действия пользователей фиксируются. Для ТЖ проверьте, что каталог не растёт неконтролируемо и параметр history в logcfg.xml применён.
Как проверить результат
События после даты сокращения на месте, новые события пишутся
Ошибка открытия журнала или пустой список при активной работе пользователей
Объём заметно уменьшился и стабилен
Объём снова быстро растёт — не настроены ротация или уровень регистрации
Файл создан, открывается, содержит удалённые события
Файла нет — история удалена безвозвратно
Чтобы вопрос чистки не возникал в авральном режиме, встройте обслуживание в регламент: сокращение журнала регистрации раз в квартал с сохранением архива, автоматическая ротация ТЖ через history, мониторинг свободного места на дисках сервера. Для файловых баз с активной работой пользователей имеет смысл сразу включить разделение журнала по периодам.
Что важно запомнить
Журнал регистрации чистится через конфигуратор функцией «Сократить» с обязательным сохранением выгрузки, технологический журнал — удалением старых файлов и настройкой ротации в logcfg.xml. Перед любой очисткой делайте резервную копию, а после — проверяйте, что регистрация событий работает.
Частые вопросы
Можно ли почистить журнал регистрации без конфигуратора?
Да, если журнал разделён по периодам: старые файлы периодов удаляются из каталога 1Cv8Log при завершённых сеансах. Для журнала без разделения штатный путь только один — сокращение через конфигуратор. Сторонние обработки, правящие журнал напрямую, использовать рискованно.
Удалится ли история действий пользователей при сокращении журнала?
Да, события старше указанной даты удаляются. Чтобы сохранить историю, при сокращении обязательно укажите файл для выгрузки удаляемых событий — потом его можно открыть и просмотреть стандартными средствами.
Технологический журнал занял весь диск, сервер 1С упал. Что делать?
Остановите сбор ТЖ (переименуйте или отредактируйте logcfg.xml, при необходимости перезапустите службы), затем удалите старые каталоги с файлами журнала, освободив место. После восстановления работы настройте параметр history и минимальный набор событий, чтобы ситуация не повторилась.
Как часто нужно чистить журнал регистрации?
Универсального срока нет: ориентируйтесь на темпы роста и требования к хранению истории. На практике удобен регламент раз в квартал или раз в полгода с сохранением выгрузки. Если журнал нужен для аудита, согласуйте сроки хранения с требованиями внутреннего контроля.
Влияет ли очистка логов на производительность базы?
Косвенно да: переполненный журнал регистрации замедляет операции с ним и увеличивает размер базы, а переполненный диск из-за ТЖ способен остановить сервер целиком. Регулярная очистка и ротация снимают эти риски, но сама по себе не ускоряют работу прикладных операций.
Нужно ли чистить логи в файловой базе, которой пользуется один человек?
Да, хотя реже. Даже в однопользовательской базе журнал регистрации растёт годами и увеличивает размер каталога и время резервного копирования. Достаточно раз в год сокращать журнал через конфигуратор, сохраняя выгрузку.