Laden...

Schichtenmodell - Log4Net auf allen Schichten einsetzen

Erstellt von BenediktFu vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.297 Views
BenediktFu Themenstarter:in
78 Beiträge seit 2009
vor 13 Jahren
Schichtenmodell - Log4Net auf allen Schichten einsetzen

Hallo,
ich habe ein Projekt mit insgesamt 4 Schichten. Ich würde jetzt gerne auf allen 4 Schichten auch loggen. Wie stelle ich das am geschicktesten an?

Meine Idee wäre eine vertikale Schicht bei der alle horizontalen Schichten eine Referenz auf die Logging Schicht bekommen. Würde eine zusätzliche Assembly bedeuten.

Gibt es noch andere Möglichkeiten, Ansätze wie ich das lösen könnte?

Vielen Dank,
Benedikt

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

Ioc-Container wie z.B. NInject oder LightCore könnten dir weiterhelfen.
Damit kannst du die Log-Instanz aus jeder Schicht abfragen, ohne das Schichtmodell zu verletzen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

BenediktFu Themenstarter:in
78 Beiträge seit 2009
vor 13 Jahren

Ok, danke für den Ansatz. Werde mich damit auseinandersetzen.

161 Beiträge seit 2007
vor 13 Jahren

Der IoC Container von Castle Windsor hat afaik build-in support für log4net.

"Eine wirklich gute Idee erkennt man daran,
dass ihre Verwirklichung von vorneherein ausgeschlossen erscheint."
(Albert Einstein)

888 Beiträge seit 2007
vor 13 Jahren

Vielleicht mach ich's ja auch falsch, aber ich machs mir ganz einfach.
Jede Schicht hat einen Verweis auf log4Net und jede schicht loggt.
Dabei werden Exceptions immer nur in der UI Schicht geloggt, und in der UI Schicht wird der Logger auch konfiguriert.

742 Beiträge seit 2005
vor 13 Jahren

Aspekte sind auch immer ne gute Idee.

3.511 Beiträge seit 2005
vor 13 Jahren

Jede Schicht hat einen Verweis auf log4Net und jede schicht loggt.

Das geht natürlich auch. Bei IoC hat man aber die Möglichkeit ohne Probleme von log4net auf z.B. NLog umzusteigen, ohne nur ein Stück bestehenden Code anzufassen (ausser natürlich der Neuimplementierung des Loggers).

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)