Willkommen Gast, Sie befinden sich im Modul: Anmelden

ERP Wiki für eEvolution

RSS RSS

Navigation (eEvolution Exchange Connector)




Im Wiki suchen
»

Warenwirtschaftssystem eEvolution – Hier Demo ausprobieren

Log4net

Das Logging wird in fast allen Komponenten über das Logging-Framework Log4Net realisiert. Für alle betreffenden Komponenten, kann das Logging in den Konfigurationsdateien konfiguriert werden.

Komponenten die Log4Net nutzen:

Log4Net Level

Log4Net bitete die Möglichkeit, über die Konfigurationsdatei einer Anwendung ein Logging-Level festzulegen, welches die Informationen über die internen Prozesse der Komponenten, je nach Level, unterschiedlich fein aufgeschlüsselte ausgibt.

Es gib folgende hierarchischen Level:
  • All
  • Debug
  • Info
  • Warn
  • Error
  • Fatal
  • Off
Jedes Level schließt die darunterliegenden Level ein. D.h. das Level Info gibt auch zusätzlich alles aus, was bei Warn ausgegeben wird.

All

Im All-Level werden alle geloggten Informationen in die entsprechende Log Datei geschrieben.

Debug

Im Debug-Level werden Ereignisse geloggt, die für den Entwickler der Anwendung Interessant sein können, wie z.B. Prozedur Einstiegspunkte oder bestimmte Variablenwerte. Für den normalen Betrieb Level eher ungeeignet, weil die anfallende Datenmenge ziemlich groß werden kann, für den Anwender und den Support aber eher uninteressant ist.

Info

Im Info-Level werden Ereignisse geloggt, die einen rein informellen Charakter haben und im fehlerfreien Programmablauf an allen möglichen Stellen auftreten. Es werden beim Start des Connectors oder des EWS Agenten z.B. die eingelesenen Konfigurationen nochmal ausgegeben, aber auch bei jedem Update der Exchange-Daten die Anzahl der gefundenen Mails zu einer bestimmten E-Mail Adresse.

Mit diesen Informationen lässt sich ein ordnungsgemäßes Verhalten des Programms überprüfen, aber die anfallende Datenmenge ist immer noch sehr hoch, da bei jedem Datenupdate zu jedem Nutzer Informationen in die Logdatei geschrieben werden.

Warn

Im Warn-Level werden Ereignisse geloggt, die zwar kein Fehlerhaftes Verhalten einer Methode darstellen, aber ein nicht so erwartetes Ereignis darstellen. Wenn z.B. zu einem eEvolution® Nutzer kein Postfach auf dem Exchange Server gefunden wurde, beeinträchtigt das zwar nicht die weitere ordnungsgemäße Ausführung des Programms, definiert aber einen Zustand, der so nicht erwartet wurde.

Das Warn-Level sollte beim Logging im Normalfall nicht unterschritten werden, da ansonsten nicht erwartete Ereignisse während des Programmablaufs nicht protokolliert werden.

Error

Im Error-Level werden „echte“ Fehler geloggt, die bei der Ausführung auftreten. Als Fehler wird z.B. ein fehlerhafter Zugriff auf die MSMQ oder den WebService eingestuft. Oder auch, wenn ein Fehler bei der Überprüfung der Lizenz auftritt.

Fatal

Im Fatal-Level wird alles geloggt, was eine weitere Ausführung des Programms ausschließt. Die Grenze zum Error-Level ist hierbei allerdings fließend, da auch dort einige Fehler eine weitere sinnvolle Ausführung des Programms ausschließen. Aber der

Off

Hiermit kann das Logging komplett ausgeschaltet werden.

Ändern des Logging-Level

Das Logging-Level für den Logger lässt sich für jede Komponente einzeln einfach über eine Änderung in der XML-Konfigurationsdatei der entsprechenden Komponente ändern.

 
KomponenteKonfigurationsdatei
Event Sink für Exchange 2003(verwendet kein Log4Net)
Exchange Connector Routing Agent für Exchange Connector..\eEvolution Exchange Connector\RoutingAgent \eEvolutionExchangeRoutingAgent.dll.xml
EWS Agent..\eEvolution Exchange Connector\EWSAgent \ExchangeWebServicesAgent.exe.xml
Exchange Connector Service..\eEvolution Exchange Connector\Service \eEvolutionExchangeConnectorService.exe.xml
Mail Import..\eEvolution Exchange Connector\MailImport \MailImport.exe.xml
Dort ändern sie einfach den value-Wert der Eigenschaft Configuration/log4net/root/level auf das gewünschte Logging-Level „Debug“, „Info“, „Warn“… (siehe Log4Net Level)

Log4net

Damit die Änderungen wirksam werden, müssen sie, falls es sich bei der konfigurierten Komponente um einen Dienst handelt, dann müssen den entsprechenden Dienst neu starten.

Ändern der Logausgabedatei

Bei Log4Net lässt sich neben dem Logging-Level auch Art des Loggings über die Konfigurationsdatei der Anwendung anpassen. Standardmäßig ist in den Konfigurationsdateien ein sogenannter Rolling-File-Appender (type="log4net.Appender.RollingFileAppender") als Logger eingetragen. Das ist ein Logger, der die Logausgabe in eine Datei schreibt und beim Erreichen einer bestimmten Größe, oder bei Datumsänderung eine neue Datei mit dem geloggten Inhalt abspaltet.

Der Pfad der Logdatei lässt sich in der Konfigurationsdatei über den value-Wert der Eigenschaft Configuration/log4net/appender/file festlegen.

Log4net

Weitere log4net Logger

In der XML-Konfigurationsdatei können beliebig viele weitere Logger („Appender“) mit unterschiedlichen Log-Stufen hinzugefügt werden. Dafür muss im Abschnitt „log4net“ in der Konfiguration ein neuer Appender mit eindeutigem Namen definiert werden, der dann im log4net/root Abschnitt mit eingehängt wird.

Log4net

Die verschiedenen Loggertypen, die hier definiert werden können, entnehmen sie bitte der log4net Dokumentation:

https://logging.apache.org/log4net/release/config-examples.html

Benannte Logger

Einige Komponenten setzten einen sogenannten benannten Logger voraus. Ein benannter Logger ist, wie der Name schon sagt, ein in der log4net Konfiguration eingetragener Logger mit einem bestimmten Namen.

Log4net

Der benannte Logger kann zusätzliche Appender zur root Konfiguration definieren, oder das Log-Level neu definieren. D.h. die Einstellungen aus der Root-Konfiguration werden geerbt von den einzelnen benannten Loggern. Wenn im Code ein benannter Logger geholt wird, der nicht in der Konfiguration vorhanden ist, dann wird nur auf die Root-Konfiguration zurückgegriffen. Es ist auch möglich gar keine Root-Konfiguration anzugeben, aber dann wird für den Fall, dass der gesuchte Logger nicht in der Konfiguration vorhanden ist, gar nicht geloggt.

Durch die Nutzung von benannten Loggern kann man über die Konfiguration steuern ob alle Logs gleich behandelt werden und z.B. in die gleiche Datei geschrieben werden, oder ob jeder Logger in eine andere Datei schreibt.

 

Komponenten, die benannte Logger voraussetzen

KomponenteLoggername
Connector Service "Service"
"Trace"
"FsAttachmentStore"
"eEvolutionExchangeConnectorMailMessageNormalizer"
TasksWebService
MailimportCliManager
ImportPreparation
MailImporterEWS
MailImporterWebDAV
Exchange Routing AgentRoutingAgent
EWS AgentDynamicMailboxSubscriptionList
Service
StaticMailboxSubscriptionList
Worker
MailboxSubscriptionFactory
"MailboxSubscription(" + smtpAddress + ")"
„FSSyncStateManager“
„SingleFolderSyncer(„ + smtpAddress +“-„ + folder.DisplayName +“)“
SyncMailboxSubscription(„ + smtpAddress + „)
SyncMailboxSubscriptionFactory
 

 

ScrewTurn Wiki Version 3.0.5.600. Einige Icons wurden von FamFamFam erstellt.

Besuchen Sie uns auf: http://www.eevolution.de