Форум: "Начинающим";
Текущий архив: 2011.06.26;
Скачать: [xml.tar.bz2];
Внизвести логи действий Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c