Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.26;
Скачать: CL | DM;

Вниз

вести логи действий   Найти похожие ветки 

 
petrovich   (2011-03-17 14:57) [0]

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

1. AssignFile(), Rewrite(), Write()
2. TFileStream


 
clickmaker ©   (2011-03-17 15:15) [1]

CreateFile, WriteFile


 
И. Павел ©   (2011-03-17 15:15) [2]

Вот тут много готовых вещей насоветовали:
http://forum.vingrad.ru/forum/topic-280053.html


 
petrovich   (2011-03-17 15:56) [3]


> CreateFile, WriteFile


так вот? пролучается как-то громоздко.

if not db_connect(Host, Port, Name, user_name, Pass) then
begin
 S := Format(C_CAN_NOT_CONNECT_TO_DB, [Host, Port, Name, user_name, Pass]);
 WriteFile(hlog_file, S[1], Length(S), N, nil);
end;


 
Jeer ©   (2011-03-17 16:07) [4]


> пролучается как-то громоздко


Если "пролучается", то не делай.
Громоздко для кого ? Для твоего мозга ?


 
clickmaker ©   (2011-03-17 16:23) [5]

> S := Format(C_CAN_NOT_CONNECT_TO_DB, [Host, Port, Name,
> user_name, Pass]);
> WriteFile(hlog_file, S[1], Length(S), N, nil);

это можно объединить в одну процедуру


 
oldman ©   (2011-03-17 16:57) [6]


> это можно объединить в одну процедуру


в одну строку даже можно


 
tippa   (2011-03-17 18:58) [7]

procedure LogFile(filepath,str: string );//имя файла и записываемая строка
var F: THandle;
   Tmp: string;
begin
 F:=CreateFile(pchar(filepath),
               GENERIC_WRITE or GENERIC_READ,
               FILE_SHARE_READ or FILE_SHARE_WRITE,
               nil,
               OPEN_ALWAYS,
               FILE_ATTRIBUTE_NORMAL,
               0);
 if F = INVALID_HANDLE_VALUE then Exit;
 SetFilePointer(F, 0, nil, FILE_END);
 Tmp := str + #13#10;
 FileWrite(F,pchar(Tmp)^,Length(Tmp));
 CloseHandle(F);
end;


 
Loginov Dmitry ©   (2011-03-17 23:35) [8]

Рекомендую LDSLogger
http://matrix.kladovka.net.ru/download.php?getfilename=uploads/other/ldslogger.zip

Перед использованием создается объект логгера:
Log := TLDSLogger.Create("C:\MyApp\Events.log");

для добавления в лога:
Log.LogStr("Текстовое сообщение", тип_сообщения);

Традиционно, к конце работы программы можно удалить объект:
Log.Free;

по умолчанию обрезает файл лога до 1.3МБ. Размер лога настраивается. Вместо обрезки (по размеру или по дате) можно использовать переименование (для минимизации количества операций ввода-вывода).
Имеется куча настраиваемых параметров.
Синхронизация как между потоками, так и между процессами.
Гарантируется немедленный сброс строки на диск (т.е. нет никакой отложенной записи в ОЗУ).
В общем, максимальная надежность при любых условиях, а также приемлемая производительность.


 
Игорь Шевченко ©   (2011-03-18 00:00) [9]


> Рекомендую LDSLogger


Это даже не велосипед, это трактор Беларусь с пятью квадратными колесами


 
Loginov Dmitry ©   (2011-03-18 12:42) [10]

А где не велосипед?
Предложи!



Страницы: 1 вся ветка

Текущий архив: 2011.06.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
15-1299222665
И. Павел
2011-03-04 10:11
2011.06.26
Во всех ли крупных организациях так!?


3-1260904454
lamer6666
2009-12-15 22:14
2011.06.26
Ошибка выполнения ZQuery.Post


2-1300718256
Scott Storch
2011-03-21 17:37
2011.06.26
разбить массив


15-1299822781
И. Павел
2011-03-11 08:53
2011.06.26
БД Access не открывается, хотя JET 4.0 установлен


15-1299760193
Юрий
2011-03-10 15:29
2011.06.26
С днем рождения ! 9 марта 2011 среда