2010-08-29 8 views
7

Ich fragte mich, was ist der 'richtige' Weg, um Informationsnachrichten zu protokollieren; zu Dateien oder zu einem speziellen Protokoll in der Ereignisanzeige?In Dateien oder Ereignisanzeige protokollieren?

Ich mag es, in Dateien zu protokollieren, da ich rollende flache Datei Listener verwenden kann und frisches neues Protokoll von jedem Tag sehen, und in der Ereignisanzeige kann ich nur eine Nachricht zu einer Zeit sehen - wo in einer Datei kann ich durch scannen Tag viel leicht. Mein Kollege argumentiert, dass Dateien nur Platz beanspruchen und er seine Warnungen, Fehler und Informationen gerne an einem Ort hat. Was denken Sie? Gibt es einen bevorzugten Weg? Wenn ja warum?

Gibt es auch Nebenläufigkeitsprobleme in einer der Methoden? Ich habe gelesen, dass Entlib threadsicher ist und einen Monitor.Enter erzeugt, wenn der Listener nicht Thread-sicher ist, aber ich möchte sicherstellen (wir verwenden nur Logger.Write). Wir verwenden Entlib 3.1.

Vielen Dank im Voraus.

+1

log4Net für mich funktioniert, dann können Sie das Ziel anpassen, um je nachdem, was für Sie die spezifische Nutzung/install geeignet ist. Ich mag auch tägliche Dateien! – kenny

Antwort

5

Hier ist die Faustregel, die ich beim Protokollieren von Nachrichten verwende.

EventLog (wenn Sie Zugriff haben natürlich) - Wir protokollieren Unhandle immer Ausnahmen - In den meisten Fällen können wir Fehler oder Fatals log - In einigen Fällen protokollieren wir Warnungen - In einigen sehr seltenen Fällen wir Informationen einzuloggen - wir werden nie nutzlos allgemeine Log-Meldungen wie: „ich bin hier, bla, bla, bla“

Log File - Allgemeine Regel, melden wir das Everthing aber entschied sich für die Art der Ebene oder Filter zu verwenden, um die Menge der protokollierten Nachrichten zu reduzieren

Das EventLog ist immer eine gute Option, da es an WMI gebunden ist. Auf diese Weise können Produkte wie Open View und ähnliche Funktionen überwachen und anzeigen, wenn etwas drunter und drüber geht. Allerdings halten Sie die Nachrichten auf ein Minimum, weil es langsam ist, seine Größe auf einem Messaeg begrenzt und es, Eingabegrenze wie Sie das EventLog ganz schnell füllen und Ihre Anwendung muss die gefürchtete "EventLog ist Full" Ausnahme behandeln:)

Hope this helps ...

3

Es gibt keinen "richtigen" Weg. Es hängt von Ihren Anforderungen ab.

Sie mögen es, flache Dateien anzusehen, aber wie viele (tausende) Zeilen können Sie wirklich jeden Tag lesen?

Was Sie scheinen, ist ein Plan (Politik) und das sollte einige Werkzeuge beinhalten. Fragen Sie sich, wie schnell Sie eine Anomalie in den Protokollen bemerken werden? Und die Abwesenheit von etwas Normalem?

Das Ereignisprotokoll ist ein wenig mehr Arbeit/Overhead, aber es kann einfach remote (mehrere Server) von einem Tool überwacht werden. Wenn Sie (nur) manuelle Inspektion verwenden, nicht stören.

+0

Danke, Sie haben Recht, ich werde nichts davon bemerken, und ja - wir verwenden nur manuelle Inspektion, zumindest für den Moment. Was ist mit der Leistung weise? Concurrency-Probleme? – Rita

1

Fragen Sie Ihre Kundenadministratoren oder Mitarbeiter des technischen Supports, wo sie die Protokolle platzieren möchten.

Als Thread-sicher, ja, EntLib ist Thread-Safe.

0

Ich würde empfehlen, Event-Viewer, aber in Fällen, in denen Sie keine Administratorrechte oder besonderen Zugriff auf Event-Viewer, Logging zu normalen Dateien wäre die bessere Option.

0

Ich bevorzuge die Protokollierung zu einer Datenbank, auf diese Weise kann ich meine Protokolle profilieren und Statistiken und Trends zu auftretenden Fehlern erstellen und die häufigsten Fehler beheben.

Für externe Kunden verwende ich einen Web-Service namens async, um den Fehler zu melden. (Ich schlucke irgendwelche Expections darin, so dass irgendwelche Protokollierungsfehler den Client nicht beeinflussen würden - nicht, dass ich irgendwelche hatte, mit log4net und L4NDash).

2

In Enterprise-Anwendungen gibt es verschiedene Arten von Protokollen wie -

  1. Aktivitätsprotokolle - Technische Protokolle, die Instrument ein Verfahren und Debuggen in nützlich sind
  2. Prüfprotokolle - Protokolle für die Prüfung verwendet Zweck. Die Verfügbarkeit solcher Protokolle ist in einigen Fällen gesetzlich vorgeschrieben.

Was Geschäft, in dem: -

  1. Soweit die Audit-Logs oder alle Protokolle mit sensiblen Daten betroffen sind sie in der Datenbank gehen sollten, wo sie sicher aufbewahrt werden.

  2. Für Aktivitätsprotokolle ist meine Vorliebe für Dateien. Aber wir sollten auch verschiedene Protokollebenen wie Fehler, Info, Verbose usw. haben, die konfigurierbar sein sollte. Dies ermöglicht es, Speicherplatz und Zeit für die Protokollierung zu sparen, wenn sie nicht benötigt wird.

  3. Sie sollten nur in das Ereignisprotokoll schreiben, wenn Sie nicht in eine Datei schreiben können.

Verwandte Themen