|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.02.2018, 10:01 | #1 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Формат файлов LGD
У меня есть проект который ведет логирование в своем формате. Не давно задумался об унификации формата лога с обще принятыми в настоящий момент. Анализ данных показал, что сейчас применяется формат LGD. Но вот его описания найти не смог. Так как это один из форматов для логирования баз данных решил написать сюда.
Если у кого есть описание формата, поделитесь. Собственно интересна информация о любых форматах ЛОГ файлах.
С уважением, Алексей.
Последний раз редактировалось tae1980; 20.02.2018 в 10:19. |
20.02.2018, 10:28 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Это может быть, что угодно. Надо смотреть внутренности или хотя бы знать программу, какая его создает. Например, у 1С лог LGD это просто sqlite база.
|
20.02.2018, 11:01 | #3 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Вот тут есть небольшое описание "Формат файлов журнала регистрации 1С 8.1/8.2 - ELF/LOG/LGF/LGP"
Может я туповат, но хотелось бы больше информации. И не плохо бы получить образцы фалов. По пока выяснил следующее, лог обычные текстовый файл каждая запись в котором (цитата): 1) Открывающей фигурной скобке "{ "в файле всегда предшествует символ новой строки; 2) Закрывающие фигурные скобки "}" не могут идти подряд – они всегда разделены символом новой строки; 3) Символ новой строки может встретиться внутри кавычек. Таким образом отделить запись можно по следующим критериям 1) Первый символ – открывающая фигурная скобка "{"; 2) Число открывающих фигурных скобок "{" равно числу закрывающих фигурных скобок "}"; 3) Последний символ – закрывающая фигурная скобка "}"; 4) Так же у правильной записи всегда будет четное число кавычек. Но вот структура записи, в статье описана плохо. Есть описание полей, но нет описания функционала. Цитата: Далее приведу значения элементов в записи: 1) Дата и время в формате "yyyyMMddHHmmss", легко превращается в дату функцией Дата(); 2) Статус транзакции – может принимать четыре значения "N" – "Отсутствует", "U" – "Зафиксирована", "R" – "Не завершена" и "C" – "Отменена"; 3) Транзакция в формате записи из двух элементов преобразованных в шестнадцатеричное число – первый – число секунд с 01.01.0001 00:00:00 умноженное на 10000, второй – номер транзакции; 4) Пользователь – указывается номер в массиве пользователей; 5) Компьютер – указывается номер в массиве компьютеров; 6) Приложение – указывается номер в массиве приложений; 7) Соединение – номер соединения; 8) Событие – указывается номер в массиве событий; 9) Важность – может принимать четыре значения – "I" – "Информация", "E" – "Ошибки", "W" – "Предупреждения" и "N" – "Примечания"; 10) Комментарий – любой текст в кавычках; 11) Метаданные – указывается номер в массиве метаданных; 12) Данные – самый хитрый элемент, содержащий вложенную запись; 13) Представление данных – текст в кавычках; 14) Сервер – указывается номер в массиве серверов; 15) Основной порт – указывается номер в массиве основных портов; 16) Вспомогательный порт – указывается номер в массиве вспомогательных портов; 17) Сеанс – номер сеанса; 18) Количество дополнительных метаданных, номера которых будут перечислены в следующих элементах записи. Именно 18-й элемент определяет длину записи, т.к. дальше будут следовать столько элементов сколько указано здесь + один последний, назначение которого пока не определено и обычно там "{0}". Возможно это просто маркер окончания записи. Так же есть идея что {0} похоже на пустой массив. Мне как не опытному в базах данных, не понятно что такое "14) Сервер – указывается номер в массиве серверов;" или "16) Вспомогательный порт – указывается номер в массиве вспомогательных портов;". Как выглядят такие номера. У нас есть "8) Событие – указывается номер в массиве событий;" Но нет информации об этом событии. Например, пользователь что добавил (аналог команды Insert), на восьмом месте мы поместили код события (КАКОЙ? Где списки кодов?), а где прописать данные которые были добавлены он добавил? Пункт "12) Данные – самый хитрый элемент, содержащий вложенную запись;" вообще не понятно для чего нужен. В нем должны быть некие массивы, формат которых в общем описан. НО для чего они нужны? Без сомнения у меня порядок и состав полей будет другой. Но общий стиль можно выдержать без проблем. Плохо что нет образцов файлов. Пока точно изменю формат даты на ДДДДДД.СССССС, где ДДДДД - количество полных дней (не включая текущий день), начиная от даты рождества Христова (Январь 1, 0001), включая её. ССССС - число секунд, истёкших после полуночи В таком виде упрощаться очень многие операции.
С уважением, Алексей.
Последний раз редактировалось tae1980; 20.02.2018 в 11:13. |
20.02.2018, 11:08 | #4 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Все-таки 1С. Вы определитесь, то вам LGD нужен, то текстовые.
Цитата:
Цитата:
|
||
20.02.2018, 13:33 | #5 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
А LGD бинарный формат? Ни где об этом нет.
Мне нужен текстовый формат. Цитата:
Десятичные, шестнадцатеричные? А может вообще составные через разделитель, например 5-5. В данному случае меня больше всего интересует "табличные данные". Каковы коды команд (Insert, select и т.п.), как прописываются переданные данные, да собственно любые данные (например заменяемые). Каково назначение массивов. Во общем все то что нужно для заполнения строк. На выходе мне бы хотелось получить журнал по которому можно восстановить действия пользователя и целостность базы при сбое. Можно конечно придумать свой формат, но за чем изобретать велосипед? А у вас нет примеров таких логов? Очень бы помогли.
С уважением, Алексей.
Последний раз редактировалось tae1980; 20.02.2018 в 13:38. |
|
20.02.2018, 13:47 | #6 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
20.02.2018, 14:18 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Где-то в сети встречалась внешняя обработка для анализа логов, можно найти и подглядеть в код. Может и поможет. Товарищ сделавший её, насколько помню, тоже методом тыка изучал устройство лога. Сомнительно, что удастся сделать что-то приемлемое для восстановления базы таким кустарным способом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 20.02.2018 в 14:21. |
20.02.2018, 15:13 | #8 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Не суть важно, да и практичнее будет либо вести отдельную таблицу машин, либо хранить IP адрес полностью, так сети могует быть много ранговые, а так же могут поступать внешние запросы.
Цитата:
У меня самостоятельный проект и нужна система логирования и ведения журналов для него. На компе нет ни как их баз данных и у меня нулевой опыт работы с ними. Приходиться работать наощуп. Системы логирования, описание которые мне удалось найти, использоваться не только 1С, но и ряде других (а скорее всего всеми) баз данных. Если систем логирования несколько, меня интересует любая из них, а лучше все.
С уважением, Алексей.
Последний раз редактировалось tae1980; 20.02.2018 в 17:12. |
|
20.02.2018, 15:24 | #9 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Цитата:
Если возьмете на себя труд, попробовать скачать материал, буду благодарен.
С уважением, Алексей.
|
|
20.02.2018, 16:06 | #10 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Нет никакой одной-двух стандартный или самых правильных систем логирования. Каждый делает под себя и свою задачу. В большинстве даже БД нет, а просто текстовой файл, типа:
дата_время уровень(ошибка, предупреждение, .. ) что-то написано Есть вариант с выплевыванием стектрейса, есть БДшные журналы для восстановления и отката транзакция, ... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите с настройкой простой программы конвертации текстовых файлов (210) в xls формат | бухарик | Помощь студентам | 29 | 18.05.2023 08:22 |
Формат файлов CVD (Clam Antivirus) | FLASH_MAN | Безопасность, Шифрование | 3 | 27.04.2012 14:44 |
Неизвестный формат файлов. | Go.away.noir | Свободное общение | 7 | 08.09.2009 11:19 |
прорулить формат файлов gz | paulus | Общие вопросы C/C++ | 0 | 25.11.2008 19:19 |