Лог-файлы 1С:Предприятие — как снежный ком: начинаются с нескольких мегабайт, а через месяц занимают десятки гигабайт на сервере. Причина проста: платформа фиксирует каждое действие — от ошибок выполнения до транзакций базы данных. Без контроля журналы не только съедают дисковое пространство, но и замедляют работу системы при попытке прочитать перегруженные файлы. В этой статье разберём 7 рабочих методов, как уменьшить объём логов без потери критичной информации — от элементарной ручной очистки до тонкой настройки ротации через конфигурационные файлы.
Важно понимать: просто удалить все логи нельзя. В них могут храниться данные для аудита, отладки интеграций или восстановления после сбоев. Поэтому подход должен быть сбалансированным: сохранить необходимое и избавиться от лишнего. Мы рассмотрим решения для разных сценариев — от одиночных рабочих мест до распределённых кластеров серверов 1С, а также коснёмся нюансов работы с logcfg.xml и 1Cv8.lgd. Если вы администратор, разработчик или просто пользователь, которому надоело видеть сообщение «Недостаточно места на диске», эта инструкция поможет вернуть контроль над логами.
1. Ручное удаление устаревших лог-файлов
Самый быстрый способ освободить место — вручную удалить ненужные файлы журналов. Логи 1С хранятся в нескольких стандартных расположениях, зависящих от режима работы:
- 📂 Файловый режим:
%APPDATA%\1C\1Cv8\(для Windows) или~/.1cv8/(для Linux). Ищите файлы с расширениями.lgd,.log,.elf. - 🖥️ Клиент-серверный режим: на сервере 1С в каталоге кластера (обычно
C:\Program Files\1cv8\srvinfo\reg_{имя_кластера}\). Здесь логи делятся наragent.log,rmngr.logиsrvinfo.log. - 🔄 Логи обновлений: в папке временных файлов
%TEMP%\1C\или в каталоге установки платформы.
Чтобы безопасно удалить файлы:
- Остановите все сеансы 1С (через
Оснастку администрирования серверов 1Сили завершите процессыragent.exe,rmngr.exeв диспетчере задач). - Отсортируйте файлы по дате изменения и удалите те, что старше 30 дней (если нет специальных требований к хранению).
- Для файлов
.lgd(бинарные логи) используйте утилитуchdbfl.exeиз комплекта 1С, чтобы проверить их целостность перед удалением:
chdbfl.exe /F "C:\Путь\к\файлу.log" /TestAndFixLog
⚠️ Внимание: Не удаляйте файлы1Cv8.lgdи1Cv8.logвручную, если они активно используются текущим сеансом. Это может привести к ошибке «Файл занят» или потере данных о последних операциях. Лучше перезапустите службу 1С перед очисткой.
2. Настройка ротации логов через logcfg.xml
Платформа 1С:Предприятие 8.3 позволяет гибко управлять ведением журналов через конфигурационный файл logcfg.xml. Этот файл определяет, какие события записываются, их уровень детализации и правила ротации (автоматическое архивирование и удаление старых файлов). По умолчанию logcfg.xml отсутствует — его нужно создать вручную.
Основные параметры файла:
| Параметр | Описание | Пример значения |
|---|---|---|
maxFileSize | Максимальный размер одного файла лога в байтах | 10485760 (10 МБ) |
maxFilesCount | Максимальное количество файлов в ротации | 5 |
logLevel | Уровень детализации (Error, Warning, Info, Debug) | Warning |
archive | Архивировать старые логи (true/false) | true |
zip | Формат архива (zip/7z) | zip |
Пример минимальной конфигурации для ротации логов сервера 1С (сохраняем только ошибки и предупреждения, архивируем файлы старше 7 дней):
<?xml version="1.0" encoding="utf-8"?>
<config xmlns="http://v8.1c.ru/logconfig">
<log location="%LOG_DIR%" name="srvinfo">
<property name="maxFileSize" value="10485760"/>
<property name="maxFilesCount" value="7"/>
<property name="logLevel" value="Warning"/>
<property name="archive" value="true"/>
<property name="zip" value="true"/>
</log>
</config>
Файл logcfg.xml размещают:
- Для клиентского приложения: в папке с исполняемым файлом
1cv8.exe. - Для сервера 1С: в каталоге кластера (
srvinfo\reg_{имя}\).
⚠️ Внимание: После измененияlogcfg.xmlтребуется перезапуск службы Агент сервера 1С:Предприятия (ragent). В противном случае настройки не применятся, а новые логи будут создаваться по старым правилам.
Создать файл logcfg.xml в правильной папке|Указать maxFileSize не более 50 МБ|Ограничить maxFilesCount до 10 штук|Установить logLevel=Warning для производственных систем|Перезапустить службу ragent-->
3. Очистка логов через оснастку администрирования серверов 1С
Если вы администрируете кластер серверов 1С, удобнее управлять журналами через графический интерфейс Оснастки администрирования (входит в комплект поставки серверной версии). Этот метод не требует ручного редактирования файлов и позволяет:
- 📊 Просматривать текущий размер логов.
- 🗑️ Очищать журналы по дате или типу (например, только логи менеджера кластера).
- ⚙️ Настраивать параметры ротации без XML.
Пошаговая инструкция:
- Откройте
Пуск → 1С Предприятие 8.3 → Администрирование серверов 1С:Предприятия. - Подключитесь к кластеру (введите имя сервера и порт, обычно
1540или1541). - Перейдите в раздел
Журналы регистрации. - Выберите нужный журнал (например,
rmngr— менеджер кластера) и нажмитеОчистить. - В диалоговом окне укажите дату, до которой нужно сохранить записи (например, «Оставить логи за последние 7 дней»).
Преимущество этого метода — визуальный контроль и возможность выбрать, какие именно логи очищать. Например, можно удалить только ragent.log (агент сервера), оставив нетронутыми логи рабочих процессов (wrc*.log).
Если оснастка не подключается к кластеру, проверьте, запущена ли служба 1C:Enterprise 8.3 Server Agent и открыт ли порт 1540/TCP в брандмауэре.
4. Автоматизация очистки через планировщик задач Windows
Для регулярной очистки логов без ручного вмешательства подойдёт Планировщик задач Windows. С его помощью можно запускать скрипт или команду удаления по расписанию (например, каждую субботу в 3:00). Вот пример батник-файла для очистки логов старше 30 дней:
@echo off
forfiles /p "C:\Program Files\1cv8\srvinfo\reg_1541\" /s /m *.log /d -30 /c "cmd /c del @path"
forfiles /p "C:\Program Files\1cv8\srvinfo\reg_1541\" /s /m *.lgd /d -30 /c "cmd /c del @path"
Чтобы настроить задачу:
- Откройте
Пуск → Панель управления → Администрирование → Планировщик задач. - Создайте новую задачу с триггером
Еженедельно. - В действии укажите путь к батник-файлу или непосредственно команду (как в примере выше).
- Запускайте задачу от имени администратора (галочка
Выполнять с наивысшими правами).
Для Linux-серверов аналогичную задачу можно настроить через cron:
0 3 6 find /opt/1cv8/srvinfo/ -name "*.log" -mtime +30 -delete
0 3 6 find /opt/1cv8/srvinfo/ -name "*.lgd" -mtime +30 -delete
⚠️ Внимание: Перед настройкой автоматической очистки проверьте, не используются ли старые логи для отчётности или аудита. В некоторых отраслях (например, банковской) требования к хранению журналов могут достигать 5 лет.
Как проверить, что задача выполнилась успешно?
Запустите Планировщик задач → Библиотека планировщика задач → Найдите свою задачу → ПКМ → "Просмотр журнала". Ищите записи с кодом 0x0 (успешное выполнение). Если видите 0x1 или 0x2, проверьте права доступа к папкам с логами или синтаксис команды.
5. Оптимизация уровня логирования в конфигураторе
Часто логи разрастаются из-за избыточной детализации. В 1С:Предприятии можно гибко настроить, какие события записываются, прямо в Конфигураторе. Это актуально для разработчиков, которые отлаживают решения, но забывают отключить подробное логирование после завершения работ.
Как уменьшить объём логов через конфигуратор:
- Откройте базу в режиме
Конфигуратор. - Перейдите в меню
Сервис → Параметры → Запуск 1С:Предприятия. - На вкладке
Дополнительнонайдите параметрУровень регистрациии установите значениеОшибкиилиПредупреждения(вместоПодробноилиОтладка). - Для тонкой настройки перейдите в
Администрирование → Журналы регистрациии отключите ненужные события (например, логирование успешных транзакций).
Также полезно отключить логирование для тестовых баз или баз, которые не используются в продуктивной работе. Для этого:
- В
Конфигуратореперейдите вАдминистрирование → Настройки программы → Журналы регистрации. - Снимите галочки с ненужных событий (например,
Запуск/остановка системы,Изменение конфигурации). - Сохраните настройки и перезапустите сеанс.
Критическая ошибка многих администраторов: оставлять включённым параметр "Регистрировать выполнение запросов" в продуктивных базах. Это увеличивает размер логов в 10–50 раз! Отключите его в настройках кластера или через logcfg.xml.
6. Архивирование и сжатие логов
Если удалять логи нельзя (например, из-за корпоративных политик), их можно архивировать с последующим сжатием. Это сокращает занимаемое пространство на 70–90% без потери данных. Для автоматизации подойдут стандартные утилиты или скрипты.
Способы архивации:
- 📦 Встроенная архивация 1С: Если в
logcfg.xmlуказан параметр<property name="archive" value="true"/>, платформа сама будет упаковывать старые логи в ZIP. - 🗜️ Скрипт на PowerShell (Windows):
$logs = Get-ChildItem "C:\Logs\1C\*.log" | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-7)}foreach ($log in $logs) {
Compress-Archive -Path $log.FullName -DestinationPath ("C:\Logs\Archive\" + $log.Name + ".zip")
Remove-Item $log.FullName
}
- 🐧 Cron + tar (Linux):
0 2 tar -czvf /backup/1c_logs_$(date +\%Y\%m\%d).tar.gz -C /opt/1cv8/srvinfo/ $(find /opt/1cv8/srvinfo/ -name ".log" -mtime +7)
Преимущества архивации:
- ✅ Экономия места без потери данных.
- ✅ Возможность восстановить логи при необходимости (например, для расследования инцидента).
- ✅ Автоматизация процесса (не требует ручного контроля).
⚠️ Внимание: Архивы логов также занимают место. Настройте политику хранения архивов (например, удалять файлы старше 6 месяцев) и контролируйте свободное пространство на диске.
Архивирование логов — компромиссное решение, когда их нельзя удалять, но нужно сэкономить место. Оптимальный вариант: архивировать файлы старше 7 дней и удалять архивы старше 3 месяцев.
7. Перенос логов на отдельный диск или сетевое хранилище
Если очистка и архивация не решают проблему (например, в системах с высокой нагрузкой, где логи вырастают на гигабайты в день), рассмотрите перенос журналов на другой физический диск или сетевое хранилище (NAS, SAN). Это разгрузит основной диск сервера и упростит управление логами.
Как перенести логи:
- Остановите службу 1С:Предприятия.
- Скопируйте папку с логами (например,
srvinfo\reg_1541\) на новый диск (например,D:\1C_Logs\). - Создайте символическую ссылку (для Windows) или примонтируйте папку (для Linux), чтобы платформа продолжала видеть логи по старому пути:
mklink /D "C:\Program Files\1cv8\srvinfo\reg_1541" "D:\1C_Logs\reg_1541" - Запустите службу 1С и проверьте, что новые логи пишутся в новое расположение.
Для сетевых хранилищ (например, SMB-шара):
- Настройте доступ по протоколу
SMBс правами на запись для пользователя, под которым работает служба 1С. - Измените путь к логам в
logcfg.xml, указав UNC-путь (например,\\nas\1c_logs\). - Убедитесь, что сеть стабильна — обрывы соединения могут привести к потере логов.
Предупреждение: перенос логов на сетевой диск может замедлить работу системы, если хранилище имеет высокую латентность. Тестируйте производительность перед внедрением в продуктив.
Для критичных систем используйте локальные SSD-диски для хранения логов. Они обеспечивают высокую скорость записи и надёжность, что важно для кластеров 1С с большой нагрузкой.
FAQ: Частые вопросы по уменьшению лог-файлов 1С
Можно ли полностью отключить логирование в 1С?
Технически да, но не рекомендуется. Без логов вы не сможете диагностировать ошибки, отслеживать действия пользователей или восстанавливать данные после сбоев. Минимальный уровень логирования (Ошибки) должен быть включён всегда. В крайнем случае отключите логирование для тестовых баз через параметр запуска /DisableLog.
Как узнать, какой процесс 1С генерирует больше всего логов?
Используйте утилиту Process Monitor (от Microsoft Sysinternals) или команду PowerShell:
Get-ChildItem "C:\Logs\1C\" -Recurse -File | Group-Object Extension | Select-Object Name, Count, @{Name="Size (MB)"; Expression={[math]::Round((($_.Group | Measure-Object Length -Sum).Sum / 1MB), 2)}} | Sort-Object "Size (MB)" -Descending
Это покажет, какие расширения файлов (.log, .lgd, .elf) занимают больше всего места.
Что делать, если логи 1С занимают сотни гигабайт и не удаляются?
Возможные причины:
- Файлы заблокированы процессом 1С (проверьте в
Resource Monitor). - Недостаточно прав на удаление (запускайте скрипты от имени администратора).
- Файловая система повреждена (выполните
chkdsk /f).
Решение: остановите все службы 1С, проверьте файловую систему, затем удаляйте логи порциями (например, по 100 файлов за раз), чтобы не перегружать систему.
Как настроить ротацию логов для конкретной базы 1С?
Ротация на уровне кластера (через logcfg.xml) применяется ко всем базам. Чтобы настроить логирование для одной базы:
- В
Конфигуратореперейдите вАдминистрирование → Журналы регистрации. - Выберите нужную базу и настройте уровень логирования индивидуально.
- Для тонкой настройки используйте параметр запуска базы
/LogCfg "путь\к\файлу.xml".
Можно ли уменьшить размер логов, конвертировав их в другой формат?
Да, но с оговорками. Бинарные логи (.lgd) занимают меньше места, чем текстовые (.log). Чтобы конвертировать:
- Используйте утилиту
logconv.exeиз комплекта 1С: - Или экспортируйте логи в
SQLiteдля анализа:
logconv.exe /F "input.log" /O "output.lgd"
logconv.exe /F "input.log" /O "output.db" /SQLite
Однако помните: .lgd нельзя прочитать без 1С, а конвертация не всегда сокращает объём.