Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy und seine Log-Funktionalitäten (https://www.delphipraxis.net/23316-indy-und-seine-log-funktionalitaeten.html)

DataCool 1. Jun 2004 12:59


Indy und seine Log-Funktionalitäten
 
Hi Leute,

eigentlich kenne ich mich ja mittlerweile mit den Indy-Komponenten sehr gut aus, aber bisher habe ich das Logging im selber mit einen eigenen Logfile-KLasse, die in einem seperaten Thread arbeitet, realisiert.
Da ich jetzt aber gerade eine Cross-Platform Anwendung schreiben will(Windoof/Linux), kann ich meine bisherige Logfile-KLasse nicht benutzen weil :
Code:
procedure TJFThreadLogFile.Execute;
Var iCount : Longint;
      bExit : Boolean;
      HandleArray : Array of THandle;
      wRes  : Word;
      iLoop : Byte;
begin
   bExit := false;
   setLength(HandleArray,2);
   HandleArray[0] := hLogEvent;
   HandleArray[1] := hCloseEvent;
   repeat
      wRes := MsgWaitForMultipleObjects(2,PDWord(HandleArray)^,false,INFINITE,QS_ALLINPUT);
      case wRes of
         WAIT_OBJECT_0 + 0 : //Log Event
            begin
               iLoop := 1;
               iCount := getBufferCount;
               While (iCount > 0) and (iLoop <= 3) do begin
                  doLog;
                  iCount := getBufferCount;
                  if iCount > 0 then
                     inc(iLoop);
               end;
            end;
         WAIT_OBJECT_0 + 1 : // Close Event
            bExit := true;
      end;
   until bExit;
   SetLength(HandleArray,0);   
end;
Wie Ihr seht benutze ich die Windows-API und kann meine Klasse geswegen knicken.

Fragen:

1. Hat jemand ne Idee, wie man das ganze Cross-Plattformfähig machen könnte ?
(mit Sleep ist doch total unperformant, oder ?)

2. Wer hat sich schon mit den Indy-Logging-Komponenten(IdLogEvent, IdLogfile u. IdLogStream) beschäftigt und kann mit sagen, wie das vernüftig funktioniert ? Bisher habe ich nur im Indy-FTP-Demp die Verwendung von IdLogEvent gefunden, bekomme aber selbst das Bsp. nicht so umgebogen das in eine DAtei geschrieben wird.

3. Oder ist es am besten ohne Logfile-Klasse(seperater THread), sondern die eigene Logfile-FUnktion einfach syncronisiert aufzurufen ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz