Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2018, 10:01   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Формат файлов LGD

У меня есть проект который ведет логирование в своем формате. Не давно задумался об унификации формата лога с обще принятыми в настоящий момент. Анализ данных показал, что сейчас применяется формат LGD. Но вот его описания найти не смог. Так как это один из форматов для логирования баз данных решил написать сюда.
Если у кого есть описание формата, поделитесь.
Собственно интересна информация о любых форматах ЛОГ файлах.
С уважением, Алексей.

Последний раз редактировалось tae1980; 20.02.2018 в 10:19.
tae1980 вне форума Ответить с цитированием
Старый 20.02.2018, 10:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Это может быть, что угодно. Надо смотреть внутренности или хотя бы знать программу, какая его создает. Например, у 1С лог LGD это просто sqlite база.
p51x вне форума Ответить с цитированием
Старый 20.02.2018, 11:01   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Вот тут есть небольшое описание "Формат файлов журнала регистрации 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.
tae1980 вне форума Ответить с цитированием
Старый 20.02.2018, 11:08   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Все-таки 1С. Вы определитесь, то вам LGD нужен, то текстовые.

Цитата:
Мне как не опытному в базах данных, не понятно что такое "14) Сервер – указывается номер в массиве серверов;" или "16) Вспомогательный порт – указывается номер в массиве вспомогательных портов;".
Причем тут БД? Что именно не понятно? Есть массив серверов, например, 192.168.1.1, 192.168.1.2, 192.168.1.3 и номер 2 - вот и берется соотв.

Цитата:
Как выглядят такие номера.
Как числа? Вы машины на улице или дома как считаете?
p51x вне форума Ответить с цитированием
Старый 20.02.2018, 13:33   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Все-таки 1С. Вы определитесь, то вам LGD нужен, то текстовые.
А LGD бинарный формат? Ни где об этом нет.
Мне нужен текстовый формат.

Цитата:
Сообщение от p51x Посмотреть сообщение
Причем тут БД? Что именно не понятно? Есть массив серверов, например, 192.168.1.1, 192.168.1.2, 192.168.1.3 и номер 2 - вот и берется соотв.
То есть, по сути, IP адрес в локально сети. Так бы и писали...

Цитата:
Сообщение от p51x Посмотреть сообщение
Как числа? Вы машины на улице или дома как считаете?
Десятичные, шестнадцатеричные? А может вообще составные через разделитель, например 5-5.

В данному случае меня больше всего интересует "табличные данные". Каковы коды команд (Insert, select и т.п.), как прописываются переданные данные, да собственно любые данные (например заменяемые). Каково назначение массивов. Во общем все то что нужно для заполнения строк.

На выходе мне бы хотелось получить журнал по которому можно восстановить действия пользователя и целостность базы при сбое. Можно конечно придумать свой формат, но за чем изобретать велосипед?

А у вас нет примеров таких логов? Очень бы помогли.
С уважением, Алексей.

Последний раз редактировалось tae1980; 20.02.2018 в 13:38.
tae1980 вне форума Ответить с цитированием
Старый 20.02.2018, 13:47   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
То есть, по сути, IP адрес в локально сети. Так бы и писали...
Нет. По сути индекс, номер элемента в массиве записей серверов.

Цитата:
Десятичные, шестнадцатеричные?
А глазами посмотреть?

Цитата:
В данному случае меня больше всего интересует "табличные данные". Каковы коды команд (Insert, select и т.п.), как прописываются переданные данные, да собственно любые данные (например заменяемые). Каково назначение массивов. Во общем все то что нужно для заполнения строк.
Отправили команду - посмотрели. Изменили данные - посмотрели... и т.д. Вот вам и словарь.

Цитата:
А у вас нет примеров таких логов? Очень бы помогли.
Т.е. вы еще и без системы гадаете на кофейной гуще? Нет, я не работаю с 1С. Да и если работал бы, то рабочие логи не дал бы.
p51x вне форума Ответить с цитированием
Старый 20.02.2018, 14:18   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Где-то в сети встречалась внешняя обработка для анализа логов, можно найти и подглядеть в код. Может и поможет. Товарищ сделавший её, насколько помню, тоже методом тыка изучал устройство лога. Сомнительно, что удастся сделать что-то приемлемое для восстановления базы таким кустарным способом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.02.2018 в 14:21.
Аватар вне форума Ответить с цитированием
Старый 20.02.2018, 15:13   #8
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет. По сути индекс, номер элемента в массиве записей серверов.
Не суть важно, да и практичнее будет либо вести отдельную таблицу машин, либо хранить IP адрес полностью, так сети могует быть много ранговые, а так же могут поступать внешние запросы.

Цитата:
Сообщение от p51x Посмотреть сообщение
А глазами посмотреть?
Отправили команду - посмотрели. Изменили данные - посмотрели... и т.д. Вот вам и словарь.
Т.е. вы еще и без системы гадаете на кофейной гуще? Нет, я не работаю с 1С. Да и если работал бы, то рабочие логи не дал бы.
Так об этом я ещё в первом письме написал....
У меня самостоятельный проект и нужна система логирования и ведения журналов для него. На компе нет ни как их баз данных и у меня нулевой опыт работы с ними. Приходиться работать наощуп.
Системы логирования, описание которые мне удалось найти, использоваться не только 1С, но и ряде других (а скорее всего всеми) баз данных. Если систем логирования несколько, меня интересует любая из них, а лучше все.
С уважением, Алексей.

Последний раз редактировалось tae1980; 20.02.2018 в 17:12.
tae1980 вне форума Ответить с цитированием
Старый 20.02.2018, 15:24   #9
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Где-то в сети встречалась внешняя обработка для анализа логов, можно найти и подглядеть в код. Может и поможет. Товарищ сделавший её, насколько помню, тоже методом тыка изучал устройство лога. Сомнительно, что удастся сделать что-то приемлемое для восстановления базы таким кустарным способом
Выше приводил ссылку на статью, у её автора есть продолжение, где он разработал некий просмотощик логов. Но в сопроводительном материале только вода. А сам код написан, как я понял, под 1С, то есть просмотреть я его скорее не могу, так он во внутреннем формате. Да и скачать ни чего с сайта не смог. Он просит ввести почтовый адрес для высылки материала или ссылки на него, а вот реакция на копку "отправить" отсутствует.
Если возьмете на себя труд, попробовать скачать материал, буду благодарен.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 20.02.2018, 16:06   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Нет никакой одной-двух стандартный или самых правильных систем логирования. Каждый делает под себя и свою задачу. В большинстве даже БД нет, а просто текстовой файл, типа:
дата_время уровень(ошибка, предупреждение, .. ) что-то написано

Есть вариант с выплевыванием стектрейса, есть БДшные журналы для восстановления и отката транзакция, ...
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с настройкой простой программы конвертации текстовых файлов (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