Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1300306556
Aleks
2011-03-16 23:15
2011.06.26
Округление чисел в Дельфи


15-1299958215
Fergo
2011-03-12 22:30
2011.06.26
Люди обясните что в этом коде не так???


15-1299172170
И. Павел
2011-03-03 20:09
2011.06.26
QReport vs Rave


2-1300363050
petrovich
2011-03-17 14:57
2011.06.26
вести логи действий


15-1299965393
Юрий
2011-03-13 00:29
2011.06.26
С днем рождения ! 13 марта 2011 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский