Q
asc schrieb:
Das machst du auch bei deiner Logfunktion.
Da habe ich mich wohl missverständlich ausgedrückt. Natürlich wird in meiner Funktion genauso jedesmal eine Datei geöffent. Aber der Vorteil ist, dass ich in meinem sonstigen Coding nur eine einzige Zeile auszuführen brauche, um eine Loggingausgabe zu machen. Es wäre sehr unpraktisch, wenn ich für jede Loggingausgabe fünf Zeilen mit immer demselben Code pro Ausgabe einfügen müsste. Außerdem kann sich die Funktion auch noch um andere Dinge kümmern, die vielleicht definiert sein müssen, bevor die Ausgabe getätigt werden kann. Das ist für das benutzende Coding transparent.
asc schrieb:
Aber das ist nur meine Meinung: tue einfach was du meinst. Wenn du jedesmal aufs neue die Datei öffnest hast du jedenfalls ganz ähnliche Probleme (1. ist dies langsam, 2. kann der Dateizugriff fehlschlagen...). Ich bezweifel das die Loggingbibliotheken von Java jedesmal neue Dateien öffnen.
Ein Performanceproblem habe ich hier definitiv nicht, da ich nur an sehr hochleveligen Stellen Ausgaben generiere. Daher ist die Zeit fast egal. Es ist mir in erster Linie wichtig, dass die Aufrufe einfach sind und dass definitv alles in der Datei ankommt.
Dass der Dateizugriff fehlschlagen kann, ist zu vernachlässigen. Wenn das der Fall ist, schlägt auch so einiges anderes fehl und das ganze System wird nicht laufen.
Ob eine Loggingbibliothek jedes Mal eine Datei öffnet oder nicht, hängt sicherlich davon ab, für welchen Zweck sie eingesetzt wird. Wenn sie Massenlogs bewältigen können muss, und man davon ausgehen kann, dass dasLoggingsystem weiterläuft, auf wenn das Restcoding anschmiert, kann man ohne weiteres eine gepufferte Lösung verwenden, die auch die Datei nicht jedes Mal neu öffnet. In meinem Fall ist das wie gesagt nicht das ausschlaggebende Kriterium für die Performance und ich logge nicht viel. Der Hauptteil meines rFactor Plugnis läuft sowieso in Java und da habe ich deutlich bessere Kontrolle über alles.
Marvin