Sie suchen einen Rahmen für die Anmeldung beliebige Objekte in stark verteilten und parallelisiert System in .NET [geschlossen]

StackOverflow https://stackoverflow.com/questions/1411415

Frage

(Anmerkung:.. Ich habe mehrere Fragen zu .NET Logging Frameworks gesehen haben, haben aber nicht die unsere Anforderungen ähnelt gesehen Also bitte diese ein als Duplikat nicht schließen Sie)

Wir werden für eine hoch verteilte und parallele .NET-Anwendung mit den folgenden Merkmalen ein Logging-Framework müssen:

  • Es muss threadsicher sein, wie Log-Meldungen werden von vielen Fäden hergestellt werden.
  • Jede Log-Meldungen müssen einen Zeitstempel haben. Wenn der Rahmen dieses automatisch hinzufügen würde, wäre es leichter machen.
  • Neben einem Zeitstempel, dort muss mindestens eine Schwere / Ausführlichkeit oder etwas ähnliches sein anhängen Nachrichten zu protokollieren, so dass sie durch sie gefiltert werden können. Mehr (orthogonal) vordefinierte Parameter (Nachrichtenquelle, Zielgruppe, Botschaft Art, was auch immer ...) zu spielen, wäre toll.
  • Allerdings müssen wir unsere eigenen Parameter ohnehin hinzuzufügen. Je mehr diese werden behandelt wie First-Class-Rahmen-Bürger (kann mit ihnen das gleiche tun wie mit dem vordefinierten Material), desto besser.
  • sollte der Rahmen der Lage sein, Nachrichten zu filtern, basierend auf zumindest den vorgegebenen Parametern. Wir müssen während der Laufzeit Filterung nach Lust und Laune ändern.
  • müssen wir setzen Objekte durch diese, keine Strings. Strings kann von diesen Objekten am Ende gemacht werden, aber Lognachricht Parameter müssen nicht in eine flache Zeichenfolge von Anfang an gestellt werden.
  • Da werden einige der Protokollierung von Kunden gesehen werden, könnten wir sie internationalisieren haben. (Da wir wollen Objekte protokollieren, nicht Strings, diese whouldn't zu hart sein, aber je mehr desto besser unterstützen.)
  • Wir müssen nach Filterung in Dateien die Log-Meldungen links schreiben zu können und diese Dateien wieder einzulesen. Wenn der Rahmen die Fähigkeit, die aus zu streamen und in, müssen wir dies nicht selbst implementieren.
  • könnte Jede Log-Nachricht an mehrere Ziele gesendet werden (Datei, Fenster, Remote-Rechner) zur gleichen Zeit.
  • Wenn Log-Meldungen über das Netzwerk gesendet werden müssen, könnte es notwendig sein, so in einem eigenen Thread zu tun.
  • Die Sache wird von C # verwendet werden.

OK, so Abbildung wir, dass es nahezu unmöglich, etwas da draußen zu finden, dass dies alles tut aus dem Kasten heraus. Diese sind einfach zu viele Anforderungen, und wahrscheinlich zu viele selten diejenigen.

Aber ist es etwas wert als Grundlage zu verwenden und unsere Sachen auf bauen?

War es hilfreich?

Lösung

log4net macht fast alle diese. Es ist vor allem Ausführlichkeit-Ebene für die Filterung basiert, und wenn Sie Filters können mit alternativen Kriterien filtern sie sind nicht unbedingt „Bürger erster Klasse“.

Auch re. „Die Dateien wieder in dem Lese“ - ich nehme an, Sie erwarten nicht, dass das Logging-Framework diesen direkt zu unterstützen. Dateien sind Dateien, nachdem alle.

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