Globale Klasse für Logging
-
cooky: und wenn man dann sein programm mit nem c++ 98/2003 compiler baut ist es dann nicht mehr safe? ganz schön riskant sich darauf zu verlassen.
-
reply31 schrieb:
cooky: und wenn man dann sein programm mit nem c++ 98/2003 compiler baut ist es dann nicht mehr safe? ganz schön riskant sich darauf zu verlassen.
Die erste Log-Zeile "Programm wurde gestartet" hat man schon raus, bevor weitere Threads gestartet werden.
-
random unreg: Dann ist einem eh nicht mehr zu helfen.
-
cooky451 schrieb:
Singleton ist hier Schwachsinn. Man macht ein Logger Klasse, und eine globale Variable.
Was ist der Unterschied? Singleton macht man doch mit einer globalen Variable die man versteckt.
-
gerad eein Logger ist etwas, wo ich es verstehen kann, wenn es mehrere Instanzen gibt. Es kann gut sein, dass ich in einm Debug-Programmdurchlauf einen Teil der Ausgaben nicht in die Datei umleeiten will, sondern ins Konsolenfenste rum eine beestimmte Komponente genauer zu beobachten. ODer ich hab verschiedene Log-level die in verschiedene Dateien umgeleitet werden...
-
otze schrieb:
gerad eein Logger ist etwas, wo ich es verstehen kann, wenn es mehrere Instanzen gibt. Es kann gut sein, dass ich in einm Debug-Programmdurchlauf einen Teil der Ausgaben nicht in die Datei umleeiten will, sondern ins Konsolenfenste rum eine beestimmte Komponente genauer zu beobachten. ODer ich hab verschiedene Log-level die in verschiedene Dateien umgeleitet werden...
Das kenne ich per Übergabe eines ints als Loglevel.
Mir kam niemals in den Sinn, mehrere Logger zu nehmen.
Ob die Leglevels nur ein dummer Trick sind, um mehrer Logger zu ersparen? Neee, die hängen auch zu arg mit < und > zusammen.
-
otze schrieb:
gerad eein Logger ist etwas, wo ich es verstehen kann, wenn es mehrere Instanzen gibt.
Gerade beim Logger ist doch eine Instanz sinnvoll, denn man hat in der Regel nur eine oder twei Dateien, in die aber andere Inhalte kommen (z.B. stdout und stderr) sowie das Konsolenfenster. Mehrere Instanzen, die das gleiche machen und in die Konsole schreiben, sind doch unnötig.
-
http://ideone.com/gsnRGR
Neat, nicht wahr?
-
Indeed.
-
-
-
Noch template daraus bauenund in basic_ostream_group umbenennen, dann gibt's von mir auch ein .Edit: Bla. Ist ja schon ein Template.
-
Einen hab' ich noch: http://ideone.com/tqWJpV
-
Hallo Leute,
vielen Dank für die vielen Tipps!
Jetzt muss ich mir noch die beste Lösung für mein Projekt überlegen.
Greets,
Antonios.