The OpenNET Project / Index page

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

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

"логирование "  
Сообщение от iva (ok) on 31-Янв-07, 16:42 
Помогите новичку!!! Одна программа (сервер) должна логировать свою работу, а другая, независимая от нее, отображать лог-файл в графическом окне. Известны только имена процессов. Подайте какую-нибудь идею.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "логирование "  
Сообщение от sascha on 31-Янв-07, 17:05 
>Помогите новичку!!! Одна программа (сервер) должна логировать свою работу, а другая, независимая
>от нее, отображать лог-файл в графическом окне. Известны только имена процессов.
>Подайте какую-нибудь идею.


а имя log файла известно?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "логирование "  
Сообщение от iva (ok) on 31-Янв-07, 18:07 

>а имя log файла известно?

известно, но я думала может записывать в файл FIFO или отправлять по UDP протоколу, но можно и в файл, но как отслеживать появление новых сообщений?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "логирование "  
Сообщение от sascha on 31-Янв-07, 18:17 
>
>>а имя log файла известно?
>
>известно, но я думала может записывать в файл FIFO или отправлять по
>UDP протоколу, но можно и в файл, но как отслеживать появление
>новых сообщений?


если будешь писать в лог-файл то читать можно так: xterm -e tail -f лог-файл

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "логирование "  
Сообщение от rmf on 31-Янв-07, 18:20 
>
>>а имя log файла известно?
>
>известно, но я думала может записывать в файл FIFO или отправлять по
>UDP протоколу, но можно и в файл, но как отслеживать появление
>новых сообщений?

классический UNIX/Linux подход

сервер пишет сообщения : man 2 syslog

читать: под Х есть смотрелки графические
если охота самой написать то 2 способа
1) аналог tail -f /var/log/messages | grep MY_NAME_OF_PROC
2) server_prod -> syslogd -> фильтрация по имени и вывод в fifo -> читалка читает из фифо


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "логирование "  
Сообщение от iva (ok) on 31-Янв-07, 18:30 
аналог tail - надо написать скрипт?
и есть пример server_prod?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "логирование "  
Сообщение от rmf on 31-Янв-07, 19:33 
>аналог tail - надо написать скрипт?

можно и через скрипт,
но второй вариант лучше, хотя придется дополнительно /etc/syslog.conf править

>и есть пример server_prod?

это очепятка s/server_prod/server_prog/

==================================================
#include <syslog.h>

openlog(PRNAME " v" VERSION, LOG_PID , LOG_DAEMON);
...
syslog(LOG_INFO,"my pid %d", getpid());
...
syslog(LOG_ERR,"function %s failed with %m", my_func);
...
closelog();
=================================================

Документации по syslog - море.
Главное с пути не сбится и придерживаться классических подходов.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "логирование "  
Сообщение от JetSnaiL email(ok) on 01-Фев-07, 12:13 
>Главное с пути не сбится и придерживаться классических подходов.

IMHO, не всегда классический подход является лучшим. Успеха добивается тот, кто идет по тропе, которой еще никто до него не ходил. Нужно искать новые, лучшие решения, иначе прогресса не видать.

P.S.: к конкретному случаю мой пост, конечно, никак не относится.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "логирование "  
Сообщение от DeadMustdie email(??) on 01-Фев-07, 14:04 
>IMHO, не всегда классический подход является лучшим. Успеха добивается тот, кто идет
>по тропе, которой еще никто до него не ходил. Нужно искать
>новые, лучшие решения, иначе прогресса не видать.

Тиха украинская ночь, но сало надо перепрятать.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "логирование "  
Сообщение от iva (ok) on 01-Фев-07, 14:23 
>>syslogd -> фильтрация по имени и вывод в fifo -> читалка читает из фифо
все это здорово, но файл FIFO должен быть создан и открыт до запуска демона syslogd, а моя прога запускается когда захочу. Мне каждый раз перезапускать syslogd? Может есть еще какие-нибудь решения?
Я уже думала, может по UDP самой себе слать сообщения, и не пользоваться syslog.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "логирование "  
Сообщение от Forth (??) on 01-Фев-07, 14:40 
>>>syslogd -> фильтрация по имени и вывод в fifo -> читалка читает из фифо
>все это здорово, но файл FIFO должен быть создан и открыт до
>запуска демона syslogd, а моя прога запускается когда захочу. Мне каждый
>раз перезапускать syslogd? Может есть еще какие-нибудь решения?
>Я уже думала, может по UDP самой себе слать сообщения, и не
>пользоваться syslog.
Можно настроить syslog чтобы слал на определенный хост свой лог, вовсе не обязательно в fifo.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "логирование "  
Сообщение от iva (ok) on 01-Фев-07, 17:54 
простых путей решения как вижу нет. Легко записать syslog-ом а прочитать...


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "логирование "  
Сообщение от Michelnok (ok) on 04-Фев-07, 14:20 
>простых путей решения как вижу нет. Легко записать syslog-ом а прочитать...

А что должно происходить когда программа чтения не запущена? Должны ли сообщения куда-то складываться?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "логирование "  
Сообщение от JetSnaiL email(ok) on 01-Фев-07, 14:47 
>>>syslogd -> фильтрация по имени и вывод в fifo -> читалка читает из фифо
>все это здорово, но файл FIFO должен быть создан и открыт до
>запуска демона syslogd, а моя прога запускается когда захочу. Мне каждый
>раз перезапускать syslogd? Может есть еще какие-нибудь решения?
>Я уже думала, может по UDP самой себе слать сообщения, и не
>пользоваться syslog.

Да зачем тут FIFO. Берешь CORBA (ACE, детище мистера Шмидта, http://www.cs.wustl.edu/~schmidt/ACE.html), строишь систему сбора логов от твоих программ. Из своей программы получаешь доступ к своему сервису сбора логов, и пишешь логи туда. А он там пусть отображает, что хочет.

Можно и по UDP рассылать, а сервер пусть получает и обрабатывает.

Можно писать в файл, например. Посмотри библиотеки log4cpp, к примеру. Только в этом случае твой сборщик мусора (пардон, логов), должен будет знать, сколько у тебя программ и в какие файлы они пишут логи.

А можно инфраструктуру на базе TCP/IP. Берешь, к примеру, тот же ACE, используешь асинхронные сокеты, и вперед.

Есть еще вариант, писать логи, скажем, в SQL server. Читать из базы можно, используя polling, а можно notification service заюзать. Если совсем будет нечего делать - Extended Stored Procedure напиши, которая будет вызываться по триггеру и рассылать нотификацию по UDP, скажем.

Если все вместе собрать, то получится так.

1) Берем log4cpp, добавляем туда свой appender, который будет писать логи в RDBMS.
2) Добавляем в RDBMS свою extended stored procedure, которая используя UDP будет сообщать об обновлениях данных.
3) Строим свой CORBA сервера, который будет получать нотификации из SQL сервера (по UDP), и обновлять данные о логах.
4) Пишем клиента для своего сервера, который будет уже по CORBA ходить на сервер за логами.

Ах да, забыл.. Очень важно настроить репликацию на SQL сервере, чтобы логи вдруг не потерялись (тиха Украинская ночь, но мало ли машина взорвется). Сервер, работающий с базой, тоже должен быть кластеризирован, причем multi master вполне подойдет.

В итоге есть у нас и MODEL, и controller, а view пиши как хочешь, вот тебе и QT, и GTK, и ncurses.

Все просто.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "логирование "  
Сообщение от rmf on 02-Фев-07, 12:51 
> IMHO, не всегда классический подход является лучшим.
> Успеха добивается тот, кто идет по  тропе,
> которой еще никто до него не ходил.
> Нужно искать новые, лучшие решения, иначе > прогресса не видать.

> P.S.: к конкретному случаю мой пост, конечно, никак не относится.

Про классический подход говорил применительно к syslog.

А по новые пути согласен. Например: init, init-ng и очень интересный
runit - a UNIX init scheme with service supervision http://smarden.org/runit/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "логирование "  
Сообщение от Michelnok (ok) on 04-Фев-07, 14:21 
>Все просто.

Вот уж постебался так постебался :-)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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