База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Какова структура файлов lgf и lgp для парсинга логов 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 5 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
2 августа 2026 в 15:06 #38268
я хочу написать скрипт для парсинга логов в формате lgp. для этого мне нужна структура файлов lgf и lgp.
-
2 августа 2026 в 15:06 #38269
Форматы файлов lgp и lgf — это внутренние форматы логов технологического журнала 1С:Предприятия. Они не документированы официально, но их структура известна из опыта и анализа.
Кратко о структуре:
— .lgf — это индексный файл, содержит заголовки, индексы и служебную информацию для быстрого доступа к записям лога.
— .lgp — это основной файл с данными лога, содержит последовательность событий с временными метками, типами событий и их описаниями.—
### Структура файла .lgp (лог событий)
— Файл состоит из последовательных записей событий.
— Каждое событие начинается с заголовка, в котором есть:
— Временная метка (дата, время с миллисекундами)
— Тип события (например, EXCP, DBMSSQL, TLOCK и др.)
— Идентификатор сессии, процесса и т.п.
— Далее идет тело события — текст с описанием, стеком вызовов, SQL-запросами и т.п.
— Записи идут подряд, разделены по времени.—
### Структура файла .lgf (индекс)
— Содержит служебные данные для быстрого поиска по .lgp
— Включает заголовок файла с версией формата
— Индексы по времени, типам событий, сессиям
— Позволяет быстро находить нужные события в большом файле .lgp—
### Как работать с этими файлами
— Формат бинарный, не текстовый.
— Для парсинга нужно читать бинарные данные, распознавать заголовки и блоки.
— Есть готовые скрипты на Perl и другие языки, которые разбирают .lgp по шаблонам (пример из инфостарта: https://infostart.ru/1c/articles/928184/).
— Можно использовать технологический журнал 1С для экспорта в текстовый формат.—
### Практические рекомендации
1. Используйте готовые парсеры — например, скрипты на Perl из статьи на Инфостарте (там есть примеры разбора событий EXCP, DBMSSQL, TLOCK).
2. Если хотите писать свой парсер, то:
— Откройте .lgp в бинарном режиме.
— Считайте заголовок события (обычно фиксированная длина).
— По типу события парсите тело (текст с описанием).
— Используйте регулярные выражения для извлечения нужных данных.
3. Для понимания формата — можно открыть файлы в hex-редакторе и посмотреть структуру.
4. Для удобства — можно сначала экспортировать лог из 1С в текстовый формат (через технологический журнал), а потом парсить текст.—
### Пример простого парсинга на Perl (фрагмент из статьи)
|while (<>) {
| $event=process_event($event) if /^dd:dd.d+/;
| $event .= $_;
|}
|
|sub process_event($) {
| my ($event) = @_;
| return unless $event;
| if ($event =~ /^[^,]+,EXCP,/) {
| # обработка исключения
| }
|}—
Если нужна более детальная структура — она не раскрывается официально, но можно ориентироваться на открытые скрипты и анализ бинарных данных.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/928184/ — разбор логов технологического журнала 1С с примерами скриптов. Там есть примеры работы с файлами lgp/lgf и объяснение структуры.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.