Für manche Protokolle gibt es Konfigurationsdateien, welche das Verhalten und Ausmaß der Protokollierung steuern lassen. Diese Konfigurationsdateien enden in .serilog.config.
Es handelt sich um XML-Dateien, diese können mit einem beliebigen Texteditor geöffnet werden. Wir empfehlen Notepad++.
Beispiel: “%ProgramData%\Advokat\<SB>\Log\Advokat3.serilog.config”
Beispiel
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="serilog:using:File" value="Serilog.Sinks.File" />
<add key="serilog:write-to:File"/>
<add key="serilog:write-to:File.path" value="%PATH%" />
<add key="serilog:write-to:File.outputTemplate" value="{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [\{Level:u3}] ({ThreadId,3}, {SourceContext,-30}) {Message:lj} {Exception}" />
<add key="serilog:write-to:File.fileSizeLimitBytes" value="1048576" />
<add key="serilog:write-to:File.rollOnFileSizeLimit" value="true" />
<add key="serilog:write-to:File.retainedFileCountLimit" value="10" />
<add key="serilog:write-to:File.shared" value="%SHARED%" />
<add key="serilog:using:Thread" value="Serilog.Enrichers.Thread" />
<add key="serilog:enrich:WithThreadId" />
<add key="serilog:enrich:FromLogContext" />
<add key="serilog:minimum-level" value="Information" />
<add key="serilog:minimum-level:override:XXX" value="Warning" />
</appSettings>
</configuration>
1. Speicherort
<add key="serilog:write-to:File.path" value="%PATH%" />
Speicherort der Protokolldatei. Umgebungsvariablen wie %ProgramData% können verwendet werden.
Wenn der Wert auf %PATH% bleibt, wird dieser vom entsprechenden Programmteil durch seinen Standard-Protokollpfad ersetzt.
2. Dateigröße, fortlaufende Nummer
<add key="serilog:write-to:File.fileSizeLimitBytes" value="1048576" />
<add key="serilog:write-to:File.rollOnFileSizeLimit" value="true" />
<add key="serilog:write-to:File.retainedFileCountLimit" value="10" />
Diese Konfigurationen stellen sicher, dass die Protokolldateien nicht zu groß werden. Erreicht eine Protokolldatei das festgesetzte Limit (fileSizeLimitBytes), wird nicht mehr in diese Datei geschrieben.
Ist die entsprechende Konfiguration (rollOnFileSizeLimit) auf "true" gesetzt, wird eine neue Datei mit einer Laufnummer im Namen erstellt, und dort weiter protokolliert.
Dies geschieht bis zu einer konfigurierbaren Zahl an Dateien (retainedFileCountLimit). Sobald diese Zahl an Protokolldateien erreicht ist, wird die älteste überschrieben.
3. Informationen
<add key="serilog:minimum-level" value="Information" />
Für Protokolle mit einer .serilog.config gibt es ein einstellbares Level. Dieses Level gibt an, welche Informationen protokolliert werden. Folgende Level gibt es:
Fatal: Das Programm ist in einem Zustand in, in dem es nicht fortgesetzt werden kann und beendet werden muss. (Beispiel: Der Benutzer meldet sich bei Windows ab. Das Programm kann das nicht aufhalten, nur den Abbruch protokollieren)
Error: Fehler, die den Programmablauf stören oder verhindern, aber von denen sich erholt werden kann. (Beispiel: Keine Zugriffsrechte auf eine benötigte Datei, Benutzer kann eine andere Datei auswählen oder die Berechtigungen richtigstellen)
Warning: Einstellungen und Umstände, die nicht standardgemäß oder nicht ideal sind, aber den Programmablauf nicht unmittelbar unterbrechen. (Beispiel: Der normale Update-Server ist nicht erreichbar, es wird ein Backup-Server verwendet)
Information: Generelle Informationen über den Programmablauf. Diese Informationen geben einem einen generellen Eindruck, was wann durchgeführt wurde. (Beispiel: Sachbearbeiter ABC hat Akt DEF/GHI angelegt)
Debug: Ausführliche Informationen über den Programmablauf. Kann sensible Daten beinhalten, die zur Nachstellung eines Problems nötig sein können. (Beispiel: Komplette Suchanfrage an Sharepoint, inkl. Benutzername, Suchbegriff, Uhrzeit, Anzahl an Ergebnissen, etc.)
Verbose: Protokolliert interne Abläufe, Zeitmessungen etc. in sehr hohem Detaillevel. Kann innerhalb kurzer Zeit viele Protokoll-Dateien vollschreiben. Kann auch sensible Daten enthalten.
Das Level Debug ist zur Unterstützung bei einer Fehlersuche oder Problemanalyse gedacht und sollen nie länger als die Suche/Analyse dauert gesetzt sein!
Das gesetzte Level beinhaltet auch alle Level darunter, z.B. werden bei einem Level von Warning alle Fatal-, Error- und Warning-Meldungen protokolliert.
4. Einzelne Programmteile oder Funktionen protokollieren
<add key="serilog:minimum-level:override:XXX" value="Warning" />
Mit dieser Einstellung lassen sich für einzelne Programmteile und Funktionalitäten separate Level einstellen. Dafür muss das "XXX" durch den Namen des Programmteils ersetzt werden.
Eine Liste der möglichen Werte ist nicht verfügbar. Beispiel: "Advokat.Advokat3.CDmsSP" für die Microsoft Sharepoint-Anbindung im Modul Dokumentverwaltung plus).