Eine effiziente Methode, Log-Dateien zu schreiben
-
Hallo,
ich habe folgende einfache Klasse geschrieben, um Log-Dateien meiner Projekte zu schreiben:
//--------------------------------------------------------------------------- //.h #ifndef LogYH #define LogYH #include <fstream> #include <Classes.hpp> //--------------------------------------------------------------------------- using namespace std; class TLogY { private: ofstream osStream; public: TLogY(AnsiString sFilename, bool bAppend); ~TLogY(); void WriteToLog(AnsiString sText); }; //--------------------------------------------------------------------------- #endif //--------------------------------------------------------------------------- //.cpp //--------------------------------------------------------------------------- #include "LogY.h" //--------------------------------------------------------------------------- TLogY::TLogY(AnsiString sFilename, bool bAppend) { if(bAppend) osStream.open(sFilename.c_str(), ios::app); else osStream.open(sFilename.c_str()); } //--------------------------------------------------------------------------- TLogY::~TLogY() { osStream.close(); } //--------------------------------------------------------------------------- void TLogY::WriteToLog(AnsiString sText) { osStream << sText.c_str() << endl; } //---------------------------------------------------------------------------
Was meint ihr, ist diese Klasse effizient genug, oder gibt es da eine effizientere/schnellere Methode, Log-Dateien zu schreiben?
Vielen Dank
-
Hier ist endl die Performance-Bremse.
Die Frage ist, gegen was die Logs schützen sollen. Gegen Debug-Datenverluste bei unvorhergesehene Programmabstürzen? Dann ist das ok so.
Sollen unvorhergesehene Programmabstürze nicht berücksichtigt werden? Dann '\n' statt endl.
Sollen unvorhergesehene Programmabstürzen nicht berücksichtigt werden und es schneller sein? Dann die Log-Daten zu einem anderen Prozess pipen. Auch gegen Stromausfäkke sicher? Dann die Log-Daten zu einem anderen Rechner schicken und quittieren lassen.
-
Danke für die Antwort.
volkard schrieb:
Die Frage ist, gegen was die Logs schützen sollen.
Es sollen die wichtigen Schritte und evtl. Fehler/Exceptions eines Dienstes dokumentiert werden.
volkard schrieb:
... schneller sein? Dann die Log-Daten zu einem anderen Prozess pipen.
Kannst Du bitte dazu was näheres sagen, oder vielleicht eine Quelle nennen, wo ich darüber mehr erfahren kann?
Danke
-
logger schrieb:
volkard schrieb:
... schneller sein? Dann die Log-Daten zu einem anderen Prozess pipen.
Kannst Du bitte dazu was näheres sagen, oder vielleicht eine Quelle nennen, wo ich darüber mehr erfahren kann?
Ich denke da an http://msdn.microsoft.com/en-us/library/aa365150(VS.85).aspx