Click or drag to resize

LoggerBase Klasse

Abstrakte Basis für diverse Logger; implementiert IInfoViewer.
Vererbungshierarchie
SystemObject
  NetEti.ApplicationControlLoggerBase
    NetEti.ApplicationControlLogger

Namensraum: NetEti.ApplicationControl
Assembly: NetEti.Logging (in NetEti.Logging.dll) Version: 1.0.0+acaf81dbf65483efca2a792d55c719cf92119339
Syntax
public abstract class LoggerBase : IInfoViewer, 
	IFlushable, IDisposable

Der LoggerBase Typ exponiert die folgenden Member.

Konstruktoren
 NameBeschreibung
Public MethodeLoggerBase Konstruktor: setzt den Pfadnamen für das Logfile.
Zurück nach oben
Eigenschaften
 NameBeschreibung
Public EigenschaftDebugArchiveMaxCount Maximale Anzahl von archivierten Logs (DebugFiles, o.ä.). Bei Überzahl werden jeweils die ältesten gelöscht. Default: 0 (entspricht unendlich vielen).
Public EigenschaftDebugArchivingInterval Zeitabstand, in dem das aktuelle Logging (DebugFile, o.ä.) archiviert und geleert wird. Muss von außen gesetzt werden. Default: TimeSpan.Zero.
Public EigenschaftIsTimerTriggered Bei True ist die Logging-Ausgabe zeitgesteuert. LoggingTriggerCounter gibt dann die Anzahl Millisekunden bis zum nächsten Trigger-Event vor. Bei False wird die Ausgabe durch die Gesamtzahl Zählvorgänge gesteuert. LoggingTriggerCounter definiert hier die Anzahl Zählvorgänge, nach der die Ausgabe erfolgt; Default: True.
Public EigenschaftLoggingTriggerCounter Anzahl Millisekunden oder Anzahl Zählvorgänge bis zur nächsten Logging-Ausgabe; Default: 5000.
Public EigenschaftLogTargetInfo Ziel-Pfad, z.B. bei Text-Logs Name und Pfad des Logfiles.
Public EigenschaftMaxBufferLineCount Maximale Anzahl Zeilen, die ein MessageBuffer aufnehmen kann, bevor er zwangsweise geflusht wird. Diese Einstellung wirkt auch bei Timer-gesteuerten Logging. Default: 10000.
Protected EigenschaftPlainMessage Bei True werden Messages unverändert ausgegeben; wegen der Asynchronität des Message-Handlings kann es hier zu Reihenfolge-Vertauschungen kommen. Bei False werden Messages mit einem Timestamp versehen und vor Flush des Message-Buffers nach dem Timestamp sortiert. Default: False.
Zurück nach oben
Methoden
 NameBeschreibung
Public MethodeStatic MemberCutLog(String, Int64, Boolean) Kürzt das Log-File 'logPath' auf die letzten 'countItems' Einträge. Das ursprüngliche Log-File wird mit der Extension '.last' gesichert. Wenn 'countLines' false ist, bleiben die Einträge mit den letzten 'countItems' Datumswerten erhalten, ansonsten die letzten 'countItems' Zeilen.
Public MethodeStatic MemberCutLog(String, Int64, Int64, Boolean) Kürzt das Log-File 'logPath' auf die letzten 'countItems' Einträge. Das ursprüngliche Log-File wird mit der Extension '.last' gesichert. Wenn 'countLines' false ist, bleiben die Einträge mit den letzten 'countItems' Datumswerten erhalten, ansonsten die letzten 'countItems' Zeilen.
Public MethodeDispose Öffentliche Methode zum Aufräumen.
Protected MethodeDispose(Boolean) Hier kann ggf. aufgeräumt werden.
Protected MethodeFinalize Finalizer: wird vom GarbageCollector aufgerufen.
(Überschreibt ObjectFinalize)
Public MethodeFlush Sorgt dafür, dass alle anstehenden Aktionen ausgeführt werden, z.B. gefüllte Zwischentabellen (Buffer) abgearbeitet (geflusht) werden.
Public MethodeHandleInfo Callback zum Loggen der Message: wird vom zuständigen InfoController aufgerufen, eine entsprechende vorherige Registrierung vorausgesetzt.
Public MethodeLog Übernimmt einen Eintrag für das Logging. Bietet Timer- oder Counter-gesteuertes Puffern von Messages. Loggt selbst nicht direkt, sondern ruft die hier abstract definierte Methode WriteLog auf, in der dann das physikalische Schreiben erfolgt. Flusht dann asynchron den Puffer um die Logging-Performance zu verbessern.
Protected MethodeOrganizeLoggings Bietet die Möglichkeit, Loggings aufzuräumen. Macht selbst nichts, kann überschrieben werden.
Public MethodeShow Kann überschrieben werden um das Log anzuzeigen; bei Textdateien z.B. über Ausgabe in den Standard-Editor.
Public MethodeStop Muss am Schluss der Verarbeitung aufgerufen werden, um den Timer zu stoppen.
Protected MethodeWriteLog Schreibt einen Eintrag in's Logfile (oder irgendwo hin), wird aber von außen nicht direkt aufgerufen; vielmehr sollte man den Logger als Viewer beim InfoController eintragen.
Zurück nach oben
Anmerkungen
File: LoggerBase.cs
Autor: Erik Nagel, NetEti

08.03.2012 Erik Nagel: erstellt
08.03.2012 Erik Nagel: CutLog(...) eingebaut.
10.05.2013 Erik Nagel: CutLog(string logPath, long countItemsFromStart, long countItemsToEnd, bool countLines) neu; beim Schreiben des gekürzten Logs System.Text.Encoding.Default eingefügt.
27.08.2015 Erik Nagel: Asynchrones Logging implementiert. 11.08.2018 Erik Nagel: Sortieren nach Timestamp bei PlainMessage==False implementiert.
Siehe auch