![]() |
Vernünftiges loggen
Hallo zusammen,
ich wollte mal fragen wie man ein vernünftiges Logging in seiner Anwendung veranstaltet. Ich habe z.B. mehrere Klassen mit denen ich verschiedene Zugriffe etc. manage. Natürlich ist auch eine Klasse fürs loggen dabei ;) Mir stellt sich nun die Frage ob ich die verschiedenen Klassen nun so gestalte, dass ihnen die Instanz der Logging-Klasse bei der Erzeugung übergeben wird oder ob ich mit diversen Exceptions arbeiten soll und diese dann im Hauptteil abfangen und loggen sollte. Wie stellt man das möglichst geschickt an? |
Re: Vernünftiges loggen
Ich weis nicht, ob das jetzt die beste Lösung oder so ist, aber in meinem FTP-Programm hab ich auch ein Log schreiben lassen.
Da hat jede Klasse (okay, es war nur eine) ein Log-Event angeboten, die was zu sagen hatte. In dem Eventhandler kann dann die Nachricht z.B. in eine datei oder in ein Richedit geschrieben werden. In deinem Fall würde also die Logging-Klasse Eventhandler bereitstellen, die mit den verschiedenen Klassen verknüft sind. Vorteil: Man kann das Event behalndeln oder auch nicht, man muss der Klasse im Konstruktor keine Logging-Klasse übergeben. (Und die Klasse braucht nichts über die Logging-Klasse zu wissen) Ist aber nur so ne Idee :angel2: |
Re: Vernünftiges loggen
Die Idee finde ich spitze!
Weitere Erfahrungen und Ideen? |
Re: Vernünftiges loggen
Ich habe das meistens via Singleton-Pattern gelöst, so dass ich auf ein globales Log-Objekt zugreifen konnte.
Vorteil: Ich muss nichts ändern um Logausgaben hinzuzufügen außer den Ausgaben selbst. Nachteil: Die Unit muss überall in die uses. |
Re: Vernünftiges loggen
Bei Events ist natürlich der Vorteil, das eben diese Log-Klasse nicht bekannt sein muss. Und es muss nicht geloggt werden, kann aber.
|
Re: Vernünftiges loggen
Was ist denn zu dem Ansatz zu sagen mit Exceptions um sich zu werfen und diese dann zentral auszuwerten?
|
Re: Vernünftiges loggen
Zitat:
Ich persönlich nutze die gleiche Methode wie Sebastian, fahre mit dem auch ganz gut. |
Re: Vernünftiges loggen
Prinzipiell tendiere ich eher zu der Event-Lösung. Das hört sich in meinen Ohren sehr elegant an.
@Die Muhkuh: Es dreht sich ja schon um Fehler und nicht um Statusmeldungen die geloggt werden sollen. |
Re: Vernünftiges loggen
Zitat:
Ich wäre dafür schlicht zu "faul", denn ich habe in einem Projekt meistens so viele Klassen, dass das ein erheblicher Aufwand wäre. (Weil ich meistens so weit wie möglich (und sinnvoll) modularisiere.) |
Re: Vernünftiges loggen
Unter Java nutze ich Log4J, welches ich auch als globales Objekt anspreche (eben erwähntes Singleton).
Unter Delphi verwende ich jedoch Events, die von der zu "loggenden" Klasse geschmissen werden. Das macht das etwas eleganter und vor allem MUSS ich nicht loggen, kann aber die Events trotzdem auswerten und sogar noch ganz andere Sachen damit treiben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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