6 Stimmen

Wie speichert man das Ereignisprotokoll in einem Ordner?

In einem ASP NET-Projekt (C#) verwende ich den Namensraum System.Diagnostics, um Fehler, Warnungen und Informationen zu protokollieren. Unter Windows 7 sehe ich, dass das Protokoll, das ich für das Projekt eingestellt habe, unter "Applications and Services Logs" zu finden ist. Wie kann ich im Code festlegen, dass ein Ordner erstellt und unter "Applications and Services Logs[SOME FOLDER]" abgelegt wird? \Applications und Dienstprotokolle", zum Beispiel?

14voto

Thomas Punkte 62314

Bei den im Abschnitt Anwendungs- und Dienstprotokoll gespeicherten Protokollen handelt es sich um die Protokolle von benutzerdefinierten Ereignisveröffentlichungen und nicht um einfache Windows-Ereignisprotokolle.

Aus diesem Artikel Technologieübersicht zum Lesen und Verwalten von Ereignisprotokollen :

Anwendungen und Dienstleistungen eine andere Kategorie von Ereignisprotokollen als den Windows-Protokollen. Die Anwendungen und Dienste-Protokolle speichern Ereignisse von einer einzelnen Anwendung oder Komponente und nicht als Ereignisse, die möglicherweise systemweite Auswirkungen haben. Sie haben eine Vielzahl von Ereignisanbieter definiert werden.

Daher müssen Sie einen benutzerdefinierten Event Publisher erstellen. Hier finden Sie einige Artikel mit weiteren Informationen:

1voto

CodeMonkeyKing Punkte 4352

Dies ist eine neue Funktion von .NET 3.5 und verfügbar in . Microsoft hat eine neue Bibliothek eingeführt, die nicht sehr benutzerfreundlich ist. Lesen Sie dazu aquí . Dort heißt es, wahrscheinlich veraltet, dass diese Klassen nur unter Windows Vista funktionieren. Ich würde jedoch die Vermutung wagen, dass sie unter Windows 7 und Server 2008 zugänglich sind.

Ich habe dort keinen Code gefunden, der erklärt, wie man eine neue Hierarchie erstellt, wie Sie es wollten, aber ich glaube, dass dies die allgemeine Richtung ist.

-1voto

ZoolWay Punkte 5291

Haben Sie erwogen, einen allgemeineren Protokollierungsmechanismus zu verwenden, der mehr Flexibilität bietet? Zum Beispiel log4net. Dann können Sie zwischen Protokolldateien und Ereignisprotokoll und auch anderen Methoden wechseln, wann immer Sie wollen, ohne eine Zeile Code zu ändern.

-4voto

Sam B Punkte 2401

Bei der Erstellung Ihrer Event Source geben Sie eine Log Name . Er wird zum "Ordner" in der Ereignisanzeige.

EventLog.CreateEventSource("Source", "Log name");
EventLog.WriteMessage("Source", "Your message");

Beachten Sie, dass zum Erstellen einer Ereignisquelle zusätzliche Rechte auf dem Rechner erforderlich sein können. In einem ASP.Net-Kontext empfehle ich, eine Windows- oder Konsolenanwendung zu erstellen, die die Ereignisquelle erzeugt. Führen Sie sie einmal als Administrator aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X