![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многопоточное логирование
Человек © (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).
и никаких синхронизаций не нужно будет, и последовательность лога "сама собой" делается.