![]() |
Webservice Kommunikation loggen
Hallo,
in welchem Event welcher Komponente kann ich die Soaprequests und die Responses loggen? Es ist vermutlich super offensichtlich...aber ich finde es nicht. TidHTTPWebBrokerBridge ist undokumentiert aber ich brauche wohl sowieso ein Event aus dem "TIdCustomHTTPServer" denke ich mal. |
AW: Webservice Kommunikation loggen
Zitat:
Sourcebeispiel: Intercept := TIdServerInterceptLogFile.Create(nil); Intercept.Filename := 'httpIntercept.log'; HTTPServer.Intercept := Intercept; (gefunden in ![]() |
AW: Webservice Kommunikation loggen
Zitat:
Für jeden WebService hast Du doch eine Procedure bzw. Funktion geschrieben... Da kannst Du doch an jeder beliebigen Stelle loggen? Oder Verstehe ich die Frage nicht...:stupid: |
AW: Webservice Kommunikation loggen
Zitat:
Es gibt ja sicher eine zentrale stelle wo der Datenverkehr verarbeitet wird. |
AW: Webservice Kommunikation loggen
Zitat:
|
AW: Webservice Kommunikation loggen
In meinem Webserver mit der Komponente TIdHTTPServer nutze ich die Ereignisse OnCommandGet und OnCommandOther u. a. zum Loggen der Anfragen an den Server.
Ausgehend von den Quelltexten müsste TidHTTPWebBrokerBridge ein Nachfahre von TIdCustomHTTPServer sein. Und die beiden Ereignisse sind dort vorhanden und auch published, müssten von daher eigentlich nutzbar sein. |
AW: Webservice Kommunikation loggen
Zitat:
TidHTTPWebBrokerBridge nutzt diese Ereignisse sehr wahrscheinlich bereits, weist ihnen eigene Handler zu. Damit wären sie nicht mehr für eigenes Logging nutzbar. |
AW: Webservice Kommunikation loggen
Man müsste halt prüfen, ob dem OnCommandGet von TidHTTPWebBrokerBridge schon was zugewiesen ist.
Könnte sowas nicht eventuell funktionieren?
Delphi-Quellcode:
...
FSaveOnCommandGet: TIdHTTPCommandEvent; ... // an geeigneter Stelle vor dem Aktivieren ... FSaveOnCommandGet := MyWebBrokerBridge.OnCommandGet; procedure TMyWebBrokerBridge.CommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); begin // und hier dann loggen? if Assigned(FSaveOnCommandGet) then begin FSaveOnCommandGet(AContext, ARequestInfo, AResponseInfo); end; // oder hier dann loggen? end; |
AW: Webservice Kommunikation loggen
Zitat:
Deswegen logge ich immer das, was ich auch brauche... Besonders weil das je nach Webservice auch unterschiedliche Daten sind. (Da eine ISAPI.DLL ja i.d.R. mehrere Funktionalitäten bietet) Grüsse |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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 by Thomas Breitkreuz