Ich baue gerade an einem Logging für einen Dienst. Dieser startet bis zu 15 Threads die paralell laufen. Zuerst dachte ich, ich könnte Exception bis zur höchsten Instanz durchleiten und dort diese in die Logfile schreiben, aber das funktioniert wohl mit Threads nicht.
Meine Idee wäre jetzt, einfach Events zu schmeißen, die Exception mitzugeben und alles in einem Art Collector zu sammeln und zum Schluss diesen in die Logfile zu schreiben. (Der Dienst läuft alle 24h für ca. 15 Minuten)
Ich glaube mich ganz dunkel an einen Artikel von Microsoft zu erinnern, der diese Thema behandelt hat, aber ich kann mich auch täuschen.
Hätte jemand von euch einen Tip, Hinweis oder Link der mir weiterhelfen könnte? 🙂
Warum verwendest du nicht bereits ein fertiges Logging-Framework.
Bei log4net z.B.: gibt es eine statische Klasse LogManager mit einer statischen Methode GetManager. Diese Methode liefert dir überall im Code deinen gewünschten Logger. Somit musst du nichts nach außen reichen, sondern jede Komponente kann für sich getrennt loggen.
Ja stimmt, warum eigentlich nicht.
Ich wollte mir eigentlich mein eigenes kleines Framework aufbauen, nicht nur für Logging, auch für Dateienverarbeitung, SQL ect., dass sehr an meine Bedürfnisse angepasst ist. Das ist mehr so eine "Learning by doing" Geschichte.
Es geht nicht ganz um Sinn und Zweck.
Log4Net war schon ein Stichwort, dass mir zu meinem Problem eingefallen wäre.
Hallo Turas,
ich würde einen sechszehnten Thread machen, der an einer synchronisierten(!) Queue<Exception> lauert und die auf diese Art eingehenden Exceptions in das Log schreibt. Die fünfzehn anderen Threads schreiben ihre Exceptions in die Queue und fertig.
herbivore
hm ich musste jetzt lachen. Hab den Thread jetzt schon abgeschrieben und hab von einer anderen Quelle das Schlagwort "Queue" erhalten, nur um den Begriff dann hier in der Suche einzugeben und meinen alten Thread zu finden ^^ 🙂
Danke trotzdem 🙂