iX 4/2021
S. 138
Praxis
C++-Tricks

Effizienteres Logging in C++-Programmen mit Expression Templates

Aufzeichnen und verlagern

Detlef Wilkening

Expression Templates lassen sich in C++ für viele Zwecke ein­setzen. Hier helfen sie dabei, Logging-Funktionen durch Lazy Evaluation des übergebenen Arguments effizienter zu machen.

Logging ist in vielen Systemen und Programmen ein wichtiges Hilfs­mittel, um Fehler zu finden, Abläufe nachzuvollziehen und Ressourcenengpässe aufzuspüren. Aus dieser Sicht sollte ein System so viel wie möglich protokollieren, damit später detaillierte Informationen zum Ablauf zur Verfügung stehen. Allerdings kann derart umfangreiches Logging das Verhalten eines Systems stark beeinflussen: Es benötigt viel Festplattenspeicher für Logdateien und kann den Programmablauf stark verlangsamen. Wer nur begrenzte Ressourcen verfügbar hat, sollte Logging folglich sparsam einsetzen.

Eine typische Lösung dieser beiden widersprüchlichen Anforderungen besteht darin, im Code viel Logging einzubauen, es zur Laufzeit aber nur bei Bedarf auszuführen. Meist definieren Entwickler hierfür sogenannte Loglevel, die zur Laufzeit mal mehr, mal weniger protokollieren. Im normalen Systembetrieb loggt der Prozess in der Regel nur die abstrakten Aktionen und Fehler mit, in detaillierteren Aus­wertungen zusätzliche Informationen wie Threads, Datenbankverbindungen und Speicher. Bei der Fehlersuche sind es Funktionsaufrufe und die Ausführung logischer Blöcke inklusive Parametern und Ergebnissen (Loglevelhierarchie siehe Abbildung).

Alle heise-Magazine mit heise+ lesen

3,99 € / Woche

Ein Abo, alle Magazine: c't, iX, Mac & i, Make & c't Fotografie

  • Alle heise-Magazine im Browser und als PDF
  • Alle exklusiven heise+ Artikel frei zugänglich
  • heise online mit weniger Werbung lesen
  • Vorteilspreis für Magazin-Abonnenten
Jetzt unbegrenzt weiterlesen Vierwöchentliche Abrechnung.

Alle Ausgaben freischalten

2,60 € 1,49 € / Woche

Nach Testphase 2,60 € wtl.

  • Zugriff auf alle iX-Magazine
  • PDF-Ausgaben zum Herunterladen
  • Zugriff in der iX-App für unterwegs
  • Über 35% günstiger im Testzeitraum
Jetzt testen Nach Testphase jederzeit monatlich kündbar.

Ausgabe einmalig freischalten

8,90 € / Ausgabe

Diese Ausgabe lesen – ohne Abobindung

  • Sicher einkaufen im heise shop
  • Magazin direkt im Browser lesen
  • Dauerhaft als PDF behalten

Kommentieren