The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"аппликуха и варианты логгирования"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"аппликуха и варианты логгирования"  +/
Сообщение от fail on 25-Июн-15, 18:17 
ситуация вроде как банальная, но ранее не сталкивался:

- в приложении необходимо будет вести лог(и)/историю(и) сообщений прикладного ( пользоватeльского ) уровня
- по T3 использовать надо или файловую систему, или встроенную в приложение библиoтеку для работы с XML
- основной и единственный пользовательский режим чтение(поиск) по:

   - id source - ид. источника ( строго фиксированный - в рамках текщего контекста приложения )
   - datetime stamp - вчера, день, неделю, ..., все время ( задается пользователем )
   - text in message - текст для поиска в сообщении ( задается пользователем )

в случае с ипользованием XML вроде особых проблем нет...


а в случае использования файлухи, что-то не особо вырисовывается, пока набросал следующюю схему:

a. app_DIR->id_source_DIR->year[20xx]_DIR->month_[1-12].LOG_FILE

b. возникает вопрос по внутренней структуре month_[1-12].LOG_FILE - думается припаять
хранение сообщений прикладного уровня в TLV структуре( и также в TLV пркирутить необходимyю служебную хрень вроде заголовка лога и т.д.)

если кто пересекался с подобной проблемой
и/или пересекался с граблями схожей схемы на файловой системе - был бы благодарен услышать мнение(я)

- достаточно ли "правильно" ?
- подводные грабли ?


p.s.:
вообщем с одной стороны надо заложить какой-то базис для расширения,
с другой не охотa двухколесную промышленность развивать.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "аппликуха и варианты логгирования"  +/
Сообщение от Square (ok) on 25-Июн-15, 18:38 
>    - id source - ид. источника ( строго фиксированный
> - в рамках текщего контекста приложения )
>    - datetime stamp - вчера, день, неделю, ..., все
> время ( задается пользователем )
>    - text in message - текст для поиска в
> сообщении ( задается пользователем )

Жжоте :)

filename.log
id application <tabulation> id source <tabulation> datetime stamp <tabulation> text in message

формат называется CSV, описан тут: https://ru.wikipedia.org/wiki/CSV

Широко используется в ИТ последние лет 50 :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "аппликуха и варианты логгирования"  +/
Сообщение от fail_ on 25-Июн-15, 20:43 
> Жжоте :)
> filename.log
> id application <tabulation> id source <tabulation> datetime stamp <tabulation> text in
> message

id source <tabulation> datetime stamp <tabulation> message
так было бы корректней сказать в данном предложении;
text in message - это что искать в сообщениях, не совсем правильно поняли

> формат называется CSV, описан тут: https://ru.wikipedia.org/wiki/CSV
> Широко используется в ИТ последние лет 50 :)

про csv и прочие "a:b:c" в курсе:

- кортежи выходят дюже "фиксированные" - трабля даже на cr, lf всплывает: уже +1 к  костыллингу при этом подходе + по моим прикидкам будут еще 2-3 итерации улучшизмофф и поликостыллинга пока "хотелки и ресурсы не устаканятся и прийдут в равновесие"

пока по файлухе все же видится:
app_DIR/id_source_DIR/year[20xx]_DIR/month_[1-12].LOG_FILE
+
month_[1-12].LOG_FILE с внутренней структурой на базe TLV

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "аппликуха и варианты логгирования"  +/
Сообщение от Square (ok) on 25-Июн-15, 21:06 
>> Жжоте :)
>> filename.log
>> id application <tabulation> id source <tabulation> datetime stamp <tabulation> text in
>> message
>  id source <tabulation> datetime stamp <tabulation> message
> так было бы корректней сказать в данном предложении;
> text in message - это что искать в сообщениях, не совсем правильно
> поняли

Зачем что-то искать? Вы вообще о чем?

Вы написали, что пишите приложение, которое будет шпионить за действиями пользователя ( вести лог) и далее описали какие данные хотите видеть в этом логе.
id source <tabulation> datetime stamp <tabulation> message

message - это и есть я так понимаю описание действий пользователя.. названия кнопок,вводимый текст... координаты мышки...

теперь оказалось, что "message" у вас оказывается многострочный...и судя по упорному желанию определить их длинну- то чуть ли не бинарный. Да, с бинарным содержимым message конечно плантекстовому файлу будет непросто...

если вы далее с этими логами (это же логи, не база данных) планируете что-то делать вроде парсинга и извлечения из них данных, полнотекстового поиска по ним... это совершенно другая задача...
и лучше сразу засовывать логи в нечто-базоподобное....xml например.или просто в базу...встроенную напрмиер..чтото вроде sqlite

То есть вопрос вобщем то простой:

вы хотите обеспечить в этой программе логирование (воспользовавшись готовыми отлаженными механизмами) или хотите под предлогом этой работы изобрести свою собственную файл-ориентированную базу данных.

На мой взгляд - это совершенно разные задачи :)

PS: SqLite поддерживает тип данных blob- можно пихать что угодно :)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "аппликуха и варианты логгирования"  +/
Сообщение от fail_ on 25-Июн-15, 22:07 
> Зачем что-то искать? Вы вообще о чем?

наверное вы не внимательно прочли первый пост;

пользователь будет искать (например текущая статистика: per 'id source' раз в квартaл) в истории  какие-то данные; возможно даже через regexp и/или пакетной обработкой по таймеру, событию...


>Вы написали, что пишите приложение, которое будет шпионить за действиями пользователя ( >вести лог) и далее описали какие данные хотите видеть в этом логе.
>id source <tabulation> datetime stamp <tabulation> message

не пришьете :)
а если без шуток, это лучше сказать "история" (лог) ПРЕДМЕТНОЙ области - ближайшая аналогии: история пользовaтеля (по ИД) в Call-центре, история переписки Instant Messaging и т.п.


> message - это и есть я так понимаю описание действий пользователя.. названия
> кнопок,вводимый текст... координаты мышки...

нет, текстовка поступаемая на один из каналов аппликухи - к-рую надобно локально расположить "наиправильнейшим" образом для приложения


> теперь оказалось, что "message" у вас оказывается многострочный...и судя по упорному желанию
> определить их длинну- то чуть ли не бинарный. Да, с бинарным
> содержимым message конечно плантекстовому файлу будет непросто...

message - многострочный текст ( UTF-8 )


> если вы далее с этими логами (это же логи, не база данных)
> планируете что-то делать вроде парсинга и извлечения из них данных, полнотекстового
> поиска по ним... это совершенно другая задача...
> и лучше сразу засовывать логи в нечто-базоподобное....xml например.или просто в базу...встроенную
> напрмиер..чтото вроде sqlite

в том-то печаль, по Т3 СУБД использовать нельзя, а использумеая библиотека XML сильно не равнодушна к памяти...

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "аппликуха и варианты логгирования"  +/
Сообщение от fail_ on 25-Июн-15, 22:36 
> То есть вопрос вобщем то простой:
> вы хотите обеспечить в этой программе логирование (воспользовавшись готовыми отлаженными
> механизмами) или хотите под предлогом этой работы изобрести свою собственную файл-ориентированную
> базу данных.

повторюсь:
вообщем с одной стороны надо заложить какой-то базис для расширения,
с другой не охотa двухколесную промышленность развивать.

> На мой взгляд - это совершенно разные задачи :)

согласен

В любом случае, придется два варианта на стенде погонять: на файлухе и XML

p.s.:
приблизительная статистика по предметке:

user -> app ( read by 'id source'(90%), 'time stamp'(9%), 'text'(0.999%); delete by 'id source'(0.001 %) )
source -> app ( 100 % insert data )

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "аппликуха и варианты логгирования"  +/
Сообщение от universite email(ok) on 28-Июн-15, 09:29 
>> То есть вопрос вобщем то простой:
>> вы хотите обеспечить в этой программе логирование (воспользовавшись готовыми отлаженными
>> механизмами) или хотите под предлогом этой работы изобрести свою собственную файл-ориентированную
>> базу данных.
> повторюсь:
> вообщем с одной стороны надо заложить какой-то базис для расширения,
> с другой не охотa двухколесную промышленность развивать.

Почитайте книжку "Искусство программирования для Unix" Эрик C. Реймонд.
Там такие вещи рассказаны.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "аппликуха и варианты логгирования"  +/
Сообщение от fail on 28-Июн-15, 12:51 
> Почитайте книжку "Искусство программирования для Unix" Эрик C. Реймонд.
> Там такие вещи рассказаны.

Благодарствуем, заодно освежим память.


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру