Frage

Wir haben eine Diskussion in unserem Büro im Rahmen eines Upgrade von einer alten Anwendung von VB6 zu .Net wurden mit 3,5 wie man am besten der Protokollierung zu nähern. Das alte System lokale Protokolldateien verwendet wird, der Pfad, für die in der Registrierung enthalten war (mit einem Standard sollte man nicht angegeben werden). Die meisten von uns lehnen nun auf das Windows-Anwendungsereignisprotokoll verwenden, aber ein Kerl hob eine Frage, die wir tot gestoppt.

Was Umgebungen wie Citrix, wo Load Balancing bedeutet, dass ein Benutzer Sitzung könnte durch verschiedene Applikationsserver an verschiedenen Stellen bedient werden? Wir haben plötzlich möglicherweise Fragmente von Informationen aus einer Sitzung verteilt auf mehrere Server (oder so glauben wir - die meisten von uns nicht vor damit zu tun hatte, so sind wir nicht 100% sicher), die es schwer für die Unterstützung Jungs macht piece die Kette von Ereignissen während eines Support-Anrufs zusammen. Der allgemeine Konsens scheint zu sein, dass wir die MS Enterprise Library Logging-Fähigkeiten verwenden sollten und ein zentrales Repository für Protokolle für jede Installation einrichten.

Kann mir jemand eine Best Practice oder sinnvoller Ansatz zur Anwendung Protokollierung in mehreren Umgebungen einschließlich App-Server-Farmen, die nicht zentralisiert Protokolle mit Enterprise Library empfehlen, oder sind wir schon auf dem richtigen Weg?

Prost

War es hilfreich?

Lösung

In Citrix-Farmen wird Lastenausgleich pro Sitzung durchgeführt (vor der Anmeldung). Einzelsitzungen können nicht zwischen Servern verschoben werden. Letzteres übrigens ist der „heilige Gral“ der Server-based Computing - wenn Sie es herausfinden, sagen Citrix, wie es zu tun, werden sie interessieren; -)

Das sollte es für Sie einfacher. In allen Windows-Umgebungen ist eine Sitzung immer auf dem gleichen physischen bzw. virtuellen Maschine. Mit diesen Informationen Protokollierung in das Ereignisprotokoll hat wieder eine Option.

Andere Tipps

Normalerweise ich alles über die eingebauten Fenster Logging-Funktionen für Desktop-Anwendungen und Dienste. Allerdings wirft dies ein interessantes Problem.

Ich denke, dass Sie besser durch den Einsatz von Enterprise Library bedient werden und Ihre Log-Speicher zentralisieren.

Wir verwenden eine benutzerdefinierte Tracelistener-Klasse, die die Protokolle an eine zentrale Datenbank schreibt.

Auch das Ereignisprotokoll kann in Ihrer Situation arbeiten - Sie müssen nur so etwas wie ein Aktivitäts-ID und / oder Session-ID enthalten. Damit sind Sie in der Lage sein, alle Teile des Anwendungsprotokolls zu korrelieren.

Protokollierung an einem zentralen Datenbank kann dazu beitragen, dass alle Teile in einem einzigen Ort sein können. Sie sollen jedoch immer noch die Verwendung einer Aktivitäts-ID suchen.

Sehen Sie die CorrelationManager Klasse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top