Click or drag to resize

Logger Klasse

Schreibt Messages mit hinzugefügten Timestamps in Logfiles; 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 class Logger : LoggerBase, IShowable

Der Logger Typ exponiert die folgenden Member.

Konstruktoren
 NameBeschreibung
Public MethodeLogger Parameterloser Konstruktor: setzt das Logfile auf GetEnvironmentVariable("TEMP") + \ + ProductName + @".log" und ruft den nächsten Konstruktor auf.
Public MethodeLogger(Boolean) Konstruktor: übernimmt plainMessage, setzt das Logfile auf GetEnvironmentVariable("TEMP") + \ + ProductName + @".log" und ruft den nächsten Konstruktor auf.
Public MethodeLogger(String) Konstruktor: übernimmt logFilePathName, setzt plainMessage auf false und ruft den nächsten Konstruktor auf.
Public MethodeLogger(Boolean, String) Konstruktor: übernimmt plainMessage und regexFilter, setzt das Logfile auf GetEnvironmentVariable("TEMP") + \ + ProductName + @".log" und ruft den nächsten Konstruktor auf.
Public MethodeLogger(String, Boolean) Konstruktor: übernimmt logFilePathName und plainMessage, setzt regexFilter auf "" und ruft den nächsten Konstruktor auf.
Public MethodeLogger(String, String, Boolean) Vollständiger Konstruktor.
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).
(Vererbt von LoggerBase)
Public EigenschaftDebugArchivingInterval Zeitabstand, in dem das aktuelle Logging (DebugFile, o.ä.) archiviert und geleert wird. Muss von außen gesetzt werden. Default: TimeSpan.Zero.
(Vererbt von LoggerBase)
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.
(Vererbt von LoggerBase)
Public EigenschaftLoggingTriggerCounter Anzahl Millisekunden oder Anzahl Zählvorgänge bis zur nächsten Logging-Ausgabe; Default: 5000.
(Vererbt von LoggerBase)
Public EigenschaftLogTargetInfo Ziel-Pfad, z.B. bei Text-Logs Name und Pfad des Logfiles.
(Vererbt von LoggerBase)
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.
(Vererbt von LoggerBase)
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.
(Vererbt von LoggerBase)
Public EigenschaftStandardIndent Einrückung der Folgezeilen bei mehrzeiligen Messages. Default: 4.
Zurück nach oben
Methoden
 NameBeschreibung
Public MethodeDispose Öffentliche Methode zum Aufräumen.
(Vererbt von LoggerBase)
Protected MethodeDispose(Boolean) Hier kann ggf. aufgeräumt werden.
(Vererbt von LoggerBase)
Protected MethodeFinalize Finalizer: wird vom GarbageCollector aufgerufen.
(Vererbt von LoggerBase)
Public MethodeFlush Sorgt dafür, dass alle anstehenden Aktionen ausgeführt werden, z.B. gefüllte Zwischentabellen (Buffer) abgearbeitet (geflusht) werden.
(Vererbt von LoggerBase)
Public MethodeHandleInfo Callback zum Loggen der Message: wird vom zuständigen InfoController aufgerufen, eine entsprechende vorherige Registrierung vorausgesetzt.
(Überschreibt LoggerBaseHandleInfo(Object, InfoArgs))
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.
(Vererbt von LoggerBase)
Protected MethodeOrganizeLoggings Benennt das Log (DebugFile) nach einer definierten Zeitspanne DebugFileArchivingInterval um und löscht Logs (DebugFiles), die älter als DebugFileArchiveLifetime sind. Um eventuelles Sperren des DebugFiles muss sich der aufrufende Prozess kümmern.
(Überschreibt LoggerBaseOrganizeLoggings(TimeSpan, Int32))
Public MethodeShow Kann überschrieben werden um das Log anzuzeigen; bei Textdateien z.B. über Ausgabe in den Standard-Editor.
(Überschreibt LoggerBaseShow)
Public MethodeStop Muss am Schluss der Verarbeitung aufgerufen werden, um den Timer zu stoppen.
(Vererbt von LoggerBase)
Protected MethodeWriteLog Schreibt einen Eintrag in's Logfile, wird aber von außen nicht direkt aufgerufen; vielmehr muss man den Logger als Viewer über seine Methode HandleInfoForLog beim InfoController eintragen.
(Überschreibt LoggerBaseWriteLog(String))
Zurück nach oben
Anmerkungen
Autor: Erik Nagel, NetEti 08.03.2012 Erik Nagel: erstellt 15.03.2014 Erik Nagel: Statistics eingebaut; Regex-Filter implementiert. 14.07.2016 Erik Nagel: Exceptions werden jetzt auf jeden Fall geloggt. 14.01.2018 Erik Nagel: Wegen Memory-Leaks überarbeitet (StringBuilder); Ausgabeformat optimiert. 21.01.2022 Erik Nagel: _replaceRegex implementiert. 06.11.2023 Erik Nagel: IShowable implementiert.
Siehe auch