 | LoggerBase Klasse |
Abstrakte Basis für diverse Logger;
implementiert IInfoViewer.
Vererbungshierarchie Namensraum: NetEti.ApplicationControlAssembly: NetEti.Logging (in NetEti.Logging.dll) Version: 1.0.0+acaf81dbf65483efca2a792d55c719cf92119339
Syntaxpublic abstract class LoggerBase : IInfoViewer,
IFlushable, IDisposable
Public MustInherit Class LoggerBase
Implements IInfoViewer, IFlushable, IDisposable
public ref class LoggerBase abstract : IInfoViewer,
IFlushable, IDisposable
[<AbstractClassAttribute>]
type LoggerBase =
class
interface IInfoViewer
interface IFlushable
interface IDisposable
end
Der LoggerBase Typ exponiert die folgenden Member.
Konstruktoren
Eigenschaften | Name | Beschreibung |
---|
 | DebugArchiveMaxCount |
Maximale Anzahl von archivierten Logs (DebugFiles, o.ä.).
Bei Überzahl werden jeweils die ältesten gelöscht.
Default: 0 (entspricht unendlich vielen).
|
 | DebugArchivingInterval |
Zeitabstand, in dem das aktuelle Logging (DebugFile, o.ä.)
archiviert und geleert wird. Muss von außen gesetzt werden.
Default: TimeSpan.Zero.
|
 | IsTimerTriggered |
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.
|
 | LoggingTriggerCounter |
Anzahl Millisekunden oder Anzahl Zählvorgänge bis zur
nächsten Logging-Ausgabe;
Default: 5000.
|
 | LogTargetInfo |
Ziel-Pfad, z.B. bei Text-Logs Name und Pfad des Logfiles.
|
 | MaxBufferLineCount |
Maximale Anzahl Zeilen, die ein MessageBuffer aufnehmen kann,
bevor er zwangsweise geflusht wird. Diese Einstellung wirkt
auch bei Timer-gesteuerten Logging.
Default: 10000.
|
 | PlainMessage |
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 | Name | Beschreibung |
---|
  | CutLog(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.
|
  | CutLog(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.
|
 | Dispose |
Öffentliche Methode zum Aufräumen.
|
 | Dispose(Boolean) |
Hier kann ggf. aufgeräumt werden.
|
 | Finalize |
Finalizer: wird vom GarbageCollector aufgerufen.
(Überschreibt ObjectFinalize) |
 | Flush |
Sorgt dafür, dass alle anstehenden Aktionen ausgeführt
werden, z.B. gefüllte Zwischentabellen (Buffer)
abgearbeitet (geflusht) werden.
|
 | HandleInfo |
Callback zum Loggen der Message: wird vom zuständigen InfoController
aufgerufen, eine entsprechende vorherige Registrierung vorausgesetzt.
|
 | Log |
Ü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.
|
 | OrganizeLoggings |
Bietet die Möglichkeit, Loggings aufzuräumen. Macht selbst nichts, kann überschrieben werden.
|
 | Show |
Kann überschrieben werden um das Log anzuzeigen;
bei Textdateien z.B. über Ausgabe in den Standard-Editor.
|
 | Stop |
Muss am Schluss der Verarbeitung aufgerufen werden, um den Timer zu stoppen.
|
 | WriteLog |
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