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

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

Работа с логами


Страницы:   1 2 3 4

123-ий ©   (2008-06-25 11:36:00) 

Как лучше организовать сабж? В том смысле, какими методами его лучше читать и писАть в него каку-либо инфу?


Тын-Дын   (2008-06-27 12:07:00) [21]


> Поросенок Винни-Пух ©   (27.06.08 11:36) [40]
> Есть задачи с большим потоком обработки данных, и операции
> нужно протоколировать, не мешая основной задаче.
> Это и есть прямое назначение.
>
> И каким образом спрошенное у меня количество записей в секунду
> может что-то сказать про это?


Отвеченное количество может помочь оценить эффективность реализации.
Странно, что такой простой вопрос в тупик ставит.


> Игорь Шевченко ©   (27.06.08 11:47) [42]
>
> > А во всех этих пример и реализациях нагрузочное многопоточное
>
> > тестирование проводилось?
>
>
> На свете существуют разные задачи


Совершенно верно.


> Поросенок Винни-Пух ©   (27.06.08 11:34) [39]
> У меня не мешает.


см. [42]

Нет, так нет.
Значит, не возникали подобные задачи.


Anatoly Podgoretsky   (2008-06-27 11:48:00) [22]

> Поросенок Винни-Пух  (27.06.2008 11:33:38)  [38]

for I := 1 to N do Log(IntToStr(I));


Игорь Шевченко   (2008-06-27 11:47:00) [23]


> А во всех этих пример и реализациях нагрузочное многопоточное
> тестирование проводилось?


На свете существуют разные задачи.


Игорь Шевченко   (2008-06-27 11:42:00) [24]


> И каким образом спрошенное у меня количество записей в секунду
> может что-то сказать про это?


повод померяться...


Поросенок Винни-Пух   (2008-06-27 11:36:00) [25]

Есть задачи с большим потоком обработки данных, и операции нужно протоколировать, не мешая основной задаче.
Это и есть прямое назначение.


И каким образом спрошенное у меня количество записей в секунду может что-то сказать про это?


Поросенок Винни-Пух   (2008-06-27 11:34:00) [26]

У меня не мешает.


Поросенок Винни-Пух   (2008-06-27 11:33:00) [27]

в одном из фрагментов сегодняшнего лога нашел 21 запись в течении одной секунды. наверное было бы больше, если бы логируемая операция содержала больше шагов.


Тын-Дын   (2008-06-27 11:32:00) [28]


> Поросенок Винни-Пух ©   (27.06.08 11:30) [36]
> Сколько записей в секунду выдерживает
>
> это важно, если стоит задача быстрого наполнения лога все
> равно чем.


Неверно.
Есть задачи с большим потоком обработки данных, и операции нужно протоколировать, не мешая основной задаче.
Это и есть прямое назначение.


Поросенок Винни-Пух   (2008-06-27 11:30:00) [29]

Сколько записей в секунду выдерживает

это важно, если стоит задача быстрого наполнения лога все равно чем.
у меня такой задачи нет, лог используется по прямому назначению.


Тын-Дын   (2008-06-27 11:26:00) [30]


> Поросенок Винни-Пух ©   (27.06.08 11:09) [34]
> не только тестирование, но и многолетняя эксплуатация


Ну и как с нагрузкой?
Сколько записей в секунду выдерживает и время реакции(время начала/конца обращения к процедуре?).


Поросенок Винни-Пух   (2008-06-27 11:09:00) [31]

не только тестирование, но и многолетняя эксплуатация


Тын-Дын   (2008-06-27 11:08:00) [32]

А во всех этих пример и реализациях нагрузочное многопоточное тестирование проводилось?


Поросенок Винни-Пух   (2008-06-27 09:36:00) [33]

unit LogUnit;

interface

procedure Log(const AMsg : string; const AParam : string = '');

implementation

uses Classes, SysUtils,SyncObjs;

var LogName:string;
   cs : TCriticalSection = nil;

procedure Log(const AMsg : string; const AParam : string = '');
var F:Text;
begin
cs.Enter;
Assign(F,LogName);
try
 if FileExists(LogName) then Append(F) else Rewrite(F);
 Writeln(F,FormatDateTime('dd.mm.yyyy hh:mm:ss',Now),#9,AMsg,#9,AParam);
finally
 Close(F);
 cs.Leave;
end;
end;

initialization
cs := TCriticalSection.Create;
LogName:=ChangeFileExt(ParamStr(0),'.log');
finalization
cs.Free;
end.


@!!ex   (2008-06-27 09:28:00) [34]

правда тут не многопоточное действо.


@!!ex   (2008-06-27 09:28:00) [35]

Я один такой не модный, что у меня 10 строчек логирование? :\
Оно правда на С++, но ниче умного нет на дельфи переделать. Работает мгновенно, даже если сообщения валятся пачками.

static osal::cFile* s_Log;

void loger::Init(const std::string FileName)
{
s_Log = new osal::cFile(FileName,osal::WRITE);
};

void loger::Finish()
{
delete s_Log;
};

void loger::Add(const std::string Text)
{
osal::PrintInConsole(Text+'\n');
s_Log->WriteText(Text);
s_Log->Flush();
};


Anatoly Podgoretsky   (2008-06-27 08:38:00) [36]


> 4 года назад тут Панов выкладывал код для ведения лога на
> ~400 строк кода.

Он схалтурил, ему лень было полный код писать.


123-ий   (2008-06-27 08:29:00) [37]

фигасе. А мне чтение нужно шобы в программу содержимое выводить. Лана, буду сам додумывать. :)


Германн   (2008-06-26 21:34:00) [38]

4 года назад тут Панов выкладывал код для ведения лога на ~400 строк кода.
:-)


Игорь Шевченко   (2008-06-26 21:01:00) [39]


> а что так невесело?


сам посмотри на код


Ega23   (2008-06-26 10:54:00) [40]


> или ты чтение вообще не делал


А нафига мне чтение??? Если чё, мне заказчик этот лог вышлет. А я уже там сам в блокноте разберусь...  :)))


Страницы:   1 2 3 4

Наверх

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