|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.01.2014, 12:20 | #1 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
Логирование
Добрый день!
Есть несколько потоков - читают из COM порта. Подскажите как реализовать логирование. Дело тут вот в чем: поток считал данные и вызывает процедуру для записи данных в файл. - дак вот поток работает быстрее чем запись в файл и происходит ошибка ввода выводу - файл занят. Подскажите что можно использовать для вывода протокола в файл? |
12.01.2014, 12:22 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
в сети готового вагон и телега, вы хоть поисковиками то попробуйте воспользоваться
|
12.01.2014, 12:29 | #3 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
|
|
12.01.2014, 12:35 | #4 | |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
Цитата:
А еще поясню: перед записью файл открываю заново потом закрываю. AssignFile(F, sFileName); if FileExists(sFileName) then Append(F) else ReWrite(F); Последний раз редактировалось qZED; 12.01.2014 в 12:40. |
|
12.01.2014, 12:39 | #5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
делают по разному
но надо организовать очередь для логов... http://www.bing.com/search?q=delphi+...s=bs&form=QBRE |
12.01.2014, 12:44 | #6 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Накапливай данные в TMemoryStream и скидывай большие блоки на HDD. Это должно уменьшить нагрузку на HDD, и возможно исключить ошибку.
|
12.01.2014, 12:48 | #7 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
Да я уже думал об этом. А если программа вдруг зависнет? Логи потеряются. Причем проверил сейчас на слабом ПК (хотя откуда они сейчас слабые то..) - программа пишет в файл отлично! Приоритет потоку что ли выставить меньше...
|
12.01.2014, 12:54 | #8 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Писал в своё время логер UDP, и тоже стояла задача логирования с разбивкой по файлам. Я единожды открывал файл для записи, и закрывал по закрытию программы. Народ на глюки пока не жаловался.
|
12.01.2014, 12:56 | #9 | |
Пользователь
Регистрация: 13.05.2009
Сообщений: 26
|
Цитата:
Проверил...А как буфер сбросить? А то не закрытый файл при открытии в FAR - не показывает внутренности... Последний раз редактировалось qZED; 12.01.2014 в 13:01. |
|
12.01.2014, 13:02 | #10 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
Последний раз редактировалось Streletz; 12.01.2014 в 13:06. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
python логирование | Lemon2009 | PHP | 1 | 11.09.2012 15:59 |
Логирование EventLog | mrChester | Общие вопросы .NET | 7 | 18.04.2012 09:55 |
Логирование запуска программы | Dima DDM | Общие вопросы Delphi | 0 | 05.08.2011 15:48 |