C++:
Loggning

Hur man gör:

Säg att du jobbar på en Linux-maskin och du vill slänga dina loggar i en fil med god gammal C++. Då vill du inkludera biblioteken <iostream> och <fstream> för att hantera filoperationer. Här är ett snabbt exempel:

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

int main() {
    std::ofstream logFile("appLog.txt", std::ios::app);  // Öppna i läget för att lägga till

    if (!logFile.is_open()) {
        std::cerr << "Det uppstod ett problem med att öppna loggfilen!" << std::endl;
        return 1;
    }

    logFile << "Applikationen startad" << std::endl;
  
    // ... någonstans i din applikations logik
    logFile << "En viktig händelse har inträffat" << std::endl;

    // Glöm inte att stänga din filström
    logFile.close();

    return 0;
}

Om du följer din loggfil med tail -f appLog.txt, bör du se:

Applikationen startad
En viktig händelse har inträffat

Snyggt, du har nu en tidsstämplad händelselog!

Djupdykning

Loggning är lika gammalt som datorberäkning i sig, med rötter i bokstavliga märken på papper för att spåra vad de forntida datorerna höll på med. I det moderna eran handlar allt om avancerade mjukvarulösningar. Du har rakt-på-fil-loggning, som det snabba och smutsiga exemplet ovan, eller så kanske du förlustar dig i ett finare loggningsramverk, såsom Log4cpp eller Boost.Log i C++ sfären; dessa tuffa killar erbjuder loggningsnivåer, formatkontroll och mer.

När det gäller nivåer inkluderar bästa praxis för loggning att använda varierande allvarlighetsnivåer—info, debug, varning, fel, fatal—så att du kan filtrera bort oväsentligheter när du försöker krossa buggar eller förstå varför din app beter sig som en lunefull tonåring.

På prestandanoteringen, bli inte slarvig med dina loggar. Överdriven loggning kan förvandla din blixtsnabba app till en snigelmaraton, tynga ner filsystem, eller till och med kosta dig pengar i lagringsavgifter om du är baserad i molnet. Att hitta rätt balans är nyckeln: logga det du behöver, och inget mer.

Se även

För er som gillar att ta ert loggningsarbete ett steg längre, kolla in dessa:

Och för lite bakgrundsläsning om varför och hur man loggar, djupdyk i: