![]() |
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:
Wie Ihr seht benutze ich die Windows-API und kann meine Klasse geswegen knicken.
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; 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