![]() |
Wie kann ich exe.log Files für mein Program erstellen?
Hallo,
ich möchte mir log Files meines Programms ausgeben lassen. Allerdings weiß ich nicht, wie ich das machen kann? Mir wurde naher gelegt den JCL Debug expert zu benutzen, aber ich bekomme es damit nicht hin. Kann mir jemand helfen? :cry: |
Re: Wie kann ich exe.log Files für mein Program erstellen?
Zitat:
|
Re: Wie kann ich exe.log Files für mein Program erstellen?
Du musst dich um das erstellen der Log-Datei schon selber kümmern. Mach dir Gedanken darüber welche Infos in der Log enthalten sein sollen. Dann definierst du dir eine globale Variable von Typ TStrings, erstellst diese im onCreate als TStringList und an allen wichtigen Stellen wie z. B. Laden der Einstellungen fügst du der Liste einen Eintrag hinzu z. B. "Laden: C:\Config.dat". Natürlich gibts da noch ganz andere Möglichkeiten ein Logsystem zu realisieren, kommt halt drauf an welche Infos du brauchst und wie komplex deine Anwendung schon ist.
|
Re: Wie kann ich exe.log Files für mein Program erstellen?
Hi,
ich weiß ja nicht genau was du loggen willst aber ich würde dir dafür TIniFile oder TextFile empfehlen. Gruß Stormy |
Re: Wie kann ich exe.log Files für mein Program erstellen?
Also, das Problem hat sich etwas gewendet. Ich habe einträge für den logfile zwischen {$IFDEF name} und {$ENDIF} eingebunden. wenn ich jetzt unter projekteinstellungen -> definitionen 'name' eingebe und dann das programm ausführe, passiert aber nichts
|
Re: Wie kann ich exe.log Files für mein Program erstellen?
Zitat:
|
Re: Wie kann ich exe.log Files für mein Program erstellen?
{$IFDEF DebugLogging}
dbg.Add('TKomMainWnd.DateiNameMittelwerte'); {$ENDIF} überall im programm hab ich solche anweisungen |
Re: Wie kann ich exe.log Files für mein Program erstellen?
und das steht in der zugehörigen unit:
Code:
procedure TDebugLog.Add(text: String);
var t: TDateTime; f: TextFile; begin if (not Assigned(Self)) then Exit; t := Now; EnterCriticalSection(csDL); AssignFile(f, FName); try try Append(f); WriteLn(f, FormatDateTime('c.zzz - ', t)+text); except raise Exception.Create('In DebugLog kann nicht geschrieben werden!'); end; finally try CloseFile(f); except end; end; LeaveCriticalSection(csDL); end; constructor TDebugLog.Create(path: String); var i: Integer; lastTime: TDateTime; fn: String; fnFound: Boolean; f: file; begin inherited Create; InitializeCriticalSection(csDL); fnFound := false; lastTime := 0; for i := 1 to 5 do begin fn := path+IntToStr(i)+'.log'; if FileExists(fn) then begin if (lastTime > FileDateToDateTime(FileAge(fn))) then begin fnFound := true; break; end else begin lastTime := FileDateToDateTime(FileAge(fn)); end; end else begin fnFound := true; break; end; end; if (not fnFound) then fn := path+'1.log'; FName := fn; EnterCriticalSection(csDL); AssignFile(f, FName); try try Rewrite(f); except raise Exception.Create('DebugLog kann nicht angelegt werden!'); end; finally try CloseFile(f); except end; end; LeaveCriticalSection(csDL); end; destructor TDebugLog.Destroy; begin DeleteCriticalSection(csDL); inherited; end; end. |
Re: Wie kann ich exe.log Files für mein Program erstellen?
Delphi-Quellcode:
Das ist ja eine interessante Anweisung. Wozu ist die gut?
if (not Assigned(Self)) then
Exit; Grüße, Messie Edit: unsinnige Frage gestrichen |
Re: Wie kann ich exe.log Files für mein Program erstellen?
Wie und wo hast du "dbg" deklariert? Hast du mal ein Brakepoint auf die Zeile
Delphi-Quellcode:
gesetzt und geguckt ob sie überhaupt ausgeführt wird?
dbg.Add('TKomMainWnd.DateiNameMittelwerte');
Gruß Stormy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 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