Hi Leute,
ich muß (mal wieder) ein sehr umfangreiches Protokoll in einen Programmteil einbauen, um Abläufe (in diesem Fall Interfacing mit einem anderem Programm) zu debuggen.
Natürlich kann ich mir helfen. Am Anfang des Threads per fopen() eine Tages-Protokolldatei öffnen - und immer mit fwrite() ne neue Zeile anhängen. Dabei würd ich die Textdatei offen lassen und den Dateihandle als Private mitführen, um an beliebigen Stellen einen Protokoll-Eintrag erstellen zu können.
Da ich enorm viel protokollieren muß, will ich einfach mal die Frage in den Raum stellen: ist das "effektiv" - oder gibt es Wege, dasselbe zu erreichen mit noch weniger "Zusatzlast" fürs system. Ziel ist natürlcih, den Original-Ablauf so wenig wie möglich zu verlangsamen bzw. ressourcenmäßig zu "verändern".
Danke im Voraus für Tips
Gruß
Klaus
Suche eine sehr "effektive" Methode für Debugging-
Moderator: Moderatoren
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Klaus,
bei meinem Webserver habe ich eine Funktion geschrieben, der ich den Namen der Logdatei und den zu schreibenden Eintrag übergebe.
Diese Funktion öffnet bzw. erzeugt die Logdatei, schreibt den Eintrag und schließt die Datei.
Es werden dort sämtliche Zugriffe auf meinen Webserver gelogt - auch aus mehreren Threads.
Funktioniert so sehr gut und ich kann mir sicher sein, dass bei einem Absturz auch alles in der Logdatei steht und nicht die Hälfte fehlt
Viele Grüße,
Martin
bei meinem Webserver habe ich eine Funktion geschrieben, der ich den Namen der Logdatei und den zu schreibenden Eintrag übergebe.
Diese Funktion öffnet bzw. erzeugt die Logdatei, schreibt den Eintrag und schließt die Datei.
Es werden dort sämtliche Zugriffe auf meinen Webserver gelogt - auch aus mehreren Threads.
Funktioniert so sehr gut und ich kann mir sicher sein, dass bei einem Absturz auch alles in der Logdatei steht und nicht die Hälfte fehlt
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Hallo,
ich verwende am Anfang meines Programmes
#ifdef DEBUG
set console off
set alternate to XYZ.LOG
set alternate on
#endif
und an ausgewählten Stellen im Programm einfach
#ifdef DEBUG
? xyz
#endif
das funktioniert auch im GUI Mode und ist die einzige Möglichkeit den Ablauf eines Programmes zu verfolgen ohne Events zu generieren (der Aufruf des Debuggers erzeugt ja z.B. KillFocus ...).
Beim Programmende wird die Datei automatisch geschlossen und nach dem compilieren ohne debugger ist nichts davon im Programm.
ich verwende am Anfang meines Programmes
#ifdef DEBUG
set console off
set alternate to XYZ.LOG
set alternate on
#endif
und an ausgewählten Stellen im Programm einfach
#ifdef DEBUG
? xyz
#endif
das funktioniert auch im GUI Mode und ist die einzige Möglichkeit den Ablauf eines Programmes zu verfolgen ohne Events zu generieren (der Aufruf des Debuggers erzeugt ja z.B. KillFocus ...).
Beim Programmende wird die Datei automatisch geschlossen und nach dem compilieren ohne debugger ist nichts davon im Programm.
Gruß
Hubert
Hubert