schließen
Zum Inhalt springen
busitec Logo
  • Leistungen
          • DIGITALISIERUNG
          • Prozessautomatisierung
          • Anwendungsentwicklung
          • Data Driven Company
          • Modern Workplace
          • KI für Unternehmen
          • Security
          • BUSINESS LÖSUNGEN
          • Sales und Marketing – CRM
          • Kundenservice und Field Service
          • HR und Employee Experience
          • Lieferanten- und Vertragsmanagement
          • Belegmanagement
          • Energie- und Versorgungsunternehmen
          • SERVICES
          • Digitale Strategie entwickeln
          • Digitale Reifegradmessung
          • Digitale Werkbank
          • IT-Workshops
        • B.SOLUTIONS

          • Managed Microsoft 365
          • Backup as a Service
          • Meeting Manager
          • Microsoft Teams Telefonie Connector
  • Technologien
        • BUSINESS APPS

          • Microsoft Power Platform – Individual
          • Microsoft Dynamics 365 – CRM
          • Microsoft Fabric – Data Driven
          • ELO ECM Suite – DMS/ECM
        • TOOLS

          • dox42
          • skybow
        • PRODUCTIVITY

          • Microsoft 365
          • Microsoft 365 Copilot
          • Microsoft Azure
        • INTEGRATION

          • ELO Connector für Microsoft
          • Skribble Sign Connector für Microsoft
  • Referenzen
  • Über busitec
    • Unternehmensprofil
    • Partner
    • Team
    • Karriere bei busitec
    • Standorte
    • 25 Jahre busitec
  • Aktuelles
    • Blog und News
    • Newsletter
    • Podcast
    • Events und Workshops
    • Mediathek
  • Kundenportal

Suche öffnen

Termin vereinbaren
Termin vereinbaren
busitec Logo

Suche öffnen

  • Leistungen
    • Digitalisierung
      • Prozessautomatisierung
      • Anwendungsentwicklung
      • Data Driven Company
      • Modern Workplace
      • KI für Unternehmen
      • Security
    • Business Lösungen
      • Sales und Marketing – CRM
      • Kundenservice und Field Service
      • HR und Employee Experience
      • Lieferanten- und Vertragsmanagement
      • Belegmanagement
      • Energie- und Versorgungsunternehmen
    • Services
      • Digitale Strategie entwickeln
      • Digitale Reifegradmessung
      • Digitale Werkbank
      • IT-Workshops
    • b.solutions
      • Managed Microsoft 365
      • Backup as a Service
      • Meeting Manager
      • Microsoft Teams Telefonie Connector
  • Technologien
    • Business Apps
      • Microsoft Power Platform
      • Microsoft Dynamics 365 – CRM
      • Microsoft Fabric
      • ELO ECM Suite
    • Tools
      • dox42
      • skybow
    • Productivity
      • Microsoft 365
      • Microsoft 365 Copilot
      • Microsoft Azure
    • Integration
      • ELO Connector für Microsoft
  • Referenzen
  • Über busitec
    • Unternehmensprofil
    • Partner
    • Team
    • Karriere bei busitec
    • Standorte
    • 25 Jahre busitec
  • Aktuelles
    • Blog und News
    • Newsletter
    • Podcast
    • Events und Workshops
    • Mediathek
  • Kundenportal
  • Suchen
  • Termin vereinbaren

Loggen–aber bitte mit Kontext

Serilog Banner

Blog Home / Deep Dive / Loggen–aber bitte mit Kontext

Weiter geht es in meiner kleinen Serie “Sommer-Logging mit Serilog”.

Wir haben bei dem Strukturierten Logging ja schon gesehen, dass man mit einem geeigneten Sink die Parameter einer Logmeldung getrennt einsehen und auch abfragen kann. Aber das erfordert natürlich, dass ich ein entsprechendes Sink habe, welches die Daten auch so aufbereiten kann.

Typischerweise hat man aber nun mal Text-Dateien als Logfiles. Dort geht das nicht, und die Suche nach einem bestimmten Parameter gestaltet sich mit unter schwierig. Wäre es da nicht schön, wenn man bestimmte Informationen in einer Spalte im Logfile erfassen könnte, so wie das mit den Informationen aus dem Logging-Context ja auch geht?

Das geht!

Man kann bei jeder Logmeldung einen Context definieren, der zusammen mit der eigentlichen Meldung und den Parametern an das jeweilige Sink übergeben wird.

Log.Logger.ForContext("MeinProperty", "MeinWert").Information("Meine Meldung");

Das haben wir bei dem fachlichen Logging ja schon mal gesehen!

Wenn ich nun die Formatierung der Logmeldungen anpasse, so kann ich nun diese Eigenschaft „MeinProperty“ aus dem Kontext als Platzhalter in meinem Template mit angeben.

.WriteTo.Console(outputTemplate:"[{Timestamp:HH:mm:ss} {Level:u3}] {MeinProperty:u} {Message}")

Damit wird also nun MeinProperty als Upper-Case in einer eigenen Spalte mit ausgegeben.

Das ganze kann praktisch sein, um z.B. bestimmte Informationen in jeder Zeile eines Logfiles mit anzugeben. Das könnte die ID eines verarbeiteten Jobs sein oder was anderes.

Gibt es da nicht schon was fertiges?

Solche erweiterten Kontext-Informationen gibt es auch schon als Nuget Packages. Da ganze nennt sich „Enricher“, weil es den Kontext um zusätzliche Informationen anreichert.

Typische Enricher sind Process und Threads. Diese stellen die aktuelle Prozess- bzw. Thread-ID im Context zur Verfügung, so dass diese mit {ProcessId} bzw {ThreadId} in das Log mit aufgenommen werden können. Eingebunden wird das Ganze dann so:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.Console(outputTemplate:"[{Timestamp:HH:mm:ss} {Level:u3}] {ProcessId} {Message}")
    .Enrich.WithProcessId()
    .CreateLogger();

Voila! Natürlich kann man hier auch mehrere Enricher angeben.

Interessant für Web-Entwickler ist vielleicht noch der Enricher Serilog.Web.Classic (gibt es auch für Dotnet Core!). Dieser erzeugt für jeden Web-Request eine GUID und fügt die in den Kontext mit ein. Somit bekommen alle Log-Meldungen, die zu eine Web-Request gehören eine eindeutige ID. Damit kann man später alle Meldungen anhand dieser Request-ID filtern und somit genau die Meldungen erhalten, die zu einem einzelnen Http-Request gehört haben.

EibenH

Zurück

Teil 9: Gotcha, SharePoint! SharePoint Grenzwerte für Nebenversionen

Weiter

Darauf haben alle gewartet: Der SharePoint Server 2019 ist verfügbar

busitec logo weiss
Digitale Technologien & Trends

Zum busitec-Blog
Immer up to date sein

Newsletter abonnieren
KONTAKT

+49 251 13 33 5 - 0
info@busitec.de
Microsoft solution partner
  • Home
  • AGB
  • Sitemap
  • Impressum
  • Datenschutz

Copyright © 2025 busitec GmbH

b.Buddy ✕
Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}