Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Многопоточное логирование


Страницы:   1 2

Человек ©   (2011-11-16 01:13:00) 

Одновременно работает 20-30 потоков, переодически генерирующих события. Нужно записывать эти события в лог. Вариант, когда один поток ждет, пока файл освободится устроит, если это не приведет к зависанию всей системы.
Какими средствами лучше всего решить задачу? Есть ли простое решение, без копания в недрах WinAPI?
Может, подскажете готовые компоненты/классы? Задача же типичная, я уверен, много раз решалась.


DVM   (2011-11-16 15:49:00) [21]


> Какими средствами лучше всего решить задачу? Есть ли простое
> решение, без копания в недрах WinAPI?

Критические секции


> Может, подскажете готовые компоненты/классы? Задача же типичная,
>  я уверен, много раз решалась.

ИМХО самая правильная идеология логгирования - это Log4. Первоначально появилась в Java под названием Log4J потом была реализована и на других языках Log4Cxx, Log4Net. Есть и два варианта реализации для Delphi: Log4D и Log4Delphi. Оба проекта есть на Sourceforge и оба несколько заброшенные, что странно. Я доработал Log4D, сделал несколько доп модулей (ConsoleAppender, ColoredConsoleAppender, DailyRollingFileAppender и много других). Давно использую, нареканий нет.
Лучше использовать этот подход чем вечно изобретать свои велосипеды. Данный подход к логгированию максимально гибок. Надо только понять его.


QAZ   (2011-11-16 14:15:00) [22]

Удалено модератором


Сергей М.   (2011-11-16 09:18:00) [23]


> Есть ли простое решение, без копания в недрах WinAPI?


Windows.OutputDebugString[A|W] - проще уже некуда

А вот и популярная приблуда для просмотра отладочного протокола, выводимого средствами OutputDebugString:

http://www.softpedia.com/progDownload/DebugView-Download-41081.html


Германн   (2011-11-16 08:45:00) [24]


> "Германн" сообщил/сообщила
> в новостях следующее:

:)))))


Anatoly Podgoretsky   (2011-11-16 08:39:00) [25]

> Германн  (16.11.2011 01:45:02)  [2]

Лежат в статьях, но если
даже не окончил, это все
равно база продолжения.
 "Германн" сообщил/сообщила
в новостях следующее:
news:1321391616.2@delphimaster.ru...
 Германн © (16.11.2011 01:45) [2]
 Когда-то Саша Панов
разрабатывал компонент
для логгирования. Тут
где-то даже его исходники
лежат. Не знаю только
доработал ли он свой
компонент.


Германн   (2011-11-16 01:45:00) [26]

Когда-то Саша Панов разрабатывал компонент для логгирования. Тут где-то даже его исходники лежат. Не знаю только доработал ли он свой компонент.


sniknik   (2011-11-16 01:22:00) [27]

добавь еще один поток, на логирование, и все записывай из него. а с остальных данные на запись шли событиями (posttreadmessage).
и никаких синхронизаций не нужно будет, и последовательность лога "сама собой" делается.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо