C++:
Protokollierung

Wie man das macht:

Angenommen, Sie arbeiten an einem Linux-Computer und möchten Ihre Protokolle mit gutem alten C++ in eine Datei schreiben. Sie sollten die Bibliotheken <iostream> und <fstream> einbinden, um Dateioperationen durchzuführen. Hier ist ein kurzes Beispiel:

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ofstream logFile("appLog.txt", std::ios::app);  // Im Anhänge-Modus öffnen

    if (!logFile.is_open()) {
        std::cerr << "Es gab ein Problem beim Öffnen der Protokolldatei!" << std::endl;
        return 1;
    }

    logFile << "Anwendung gestartet" << std::endl;
  
    // ... irgendwo in Ihrer Anwendungslogik
    logFile << "Es ist ein wichtiges Ereignis eingetreten" << std::endl;

    // Vergessen Sie nicht, Ihren Dateistream zu schließen
    logFile.close();

    return 0;
}

Wenn Sie Ihre Protokolldatei mit tail -f appLog.txt überwachen, sollten Sie Folgendes sehen:

Anwendung gestartet
Es ist ein wichtiges Ereignis eingetreten

Toll, Sie haben jetzt einen zeitgestempelten Verlauf von Ereignissen!

Vertiefung

Das Protokollieren ist so alt wie die Datenverarbeitung selbst, mit Wurzeln in buchstäblichen Markierungen auf Papier, um nachzuverfolgen, was alte Computer taten. In der modernen Ära geht es um ausgeklügelte Softwarelösungen. Es gibt direkte Dateiprotokollierung, wie das schnelle und schmutzige Beispiel oben, oder Sie könnten sich für ein ausgefeilteres Protokollierungs-Framework entscheiden, wie Log4cpp oder Boost.Log im C++-Bereich; diese bieten Protokollierungsstufen, Formatkontrolle und mehr.

Apropos Stufen, zu den besten Praktiken beim Protokollieren gehört die Verwendung unterschiedlicher Schweregrade – Info, Debug, Warnung, Fehler, Fatal –, sodass Sie das Rauschen filtern können, wenn Sie versuchen, Bugs zu beheben oder herauszufinden, warum sich Ihre App wie ein launischer Teenager verhält.

In Bezug auf die Leistung sollten Sie nicht nachlässig mit Ihren Protokollen werden. Übermäßiges Protokollieren kann aus Ihrer blitzschnellen App einen Schneckenmarathon machen, Dateisysteme belasten oder sogar Kosten in Speichergebühren verursachen, wenn Sie cloudbasiert sind. Das richtige Gleichgewicht zu finden, ist der Schlüssel: Protokollieren Sie das, was Sie benötigen, und nichts mehr.

Siehe Auch

Für diejenigen unter Ihnen, die bei Ihren Protokollierungspraktiken die Extrameile gehen wollen, sehen Sie sich diese an:

Und für ein bisschen Hintergrundlektüre zu den Gründen und Methoden des Protokollierens tauchen Sie ein in: