C++:
Loggføring

Hvordan:

La oss si at du jobber på en Linux-maskin og du vil kaste loggene dine til en fil med god gammeldags C++. Du vil inkludere bibliotekene <iostream> og <fstream> for å håndtere filoperasjoner. Her er et raskt eksempel:

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

int main() {
    std::ofstream logFile("appLog.txt", std::ios::app);  // Åpne i påføringsmodus

    if (!logFile.is_open()) {
        std::cerr << "Det var et problem med å åpne loggfilen!" << std::endl;
        return 1;
    }

    logFile << "Applikasjonen startet" << std::endl;
  
    // ... et sted i applogikken din
    logFile << "En viktig hendelse har inntruffet" << std::endl;

    // Glem ikke å lukke filstrømmen din
    logFile.close();

    return 0;
}

Hvis du følger loggfilen din med tail -f appLog.txt, burde du se:

Applikasjonen startet
En viktig hendelse har inntruffet

Pent, du har nå en tidsstemplet registrering av hendelser!

Dypdykk

Logging er like gammel som databehandling selv, med røtter i bokstavelige merker på papir for å spore hva de antikke datamaskinene holdt på med. I den moderne æraen handler det om sofistikerte programvareløsninger. Du har rett-til-fil-logging, som det kjappe og enkle eksempelet over, eller du kan kanskje fråtse i et mer fancy loggingrammeverk, som Log4cpp eller Boost.Log i C++-verdenen; disse tøffingene tilbyr loggnivåer, formatkontroll og mer.

Når vi snakker om nivåer, inkluderer beste praksis for logging å bruke varierende nivåer av alvorlighetsgrad – info, debug, advarsel, error, fatal – slik at du kan filtrere bort støy når du prøver å knuse bugs eller finne ut hvorfor appen din oppfører seg som en humørsyk tenåring.

Når det gjelder ytelse, ikke bli slurvete med loggene dine. Overdreven logging kan gjøre din lynraske app til en sneglemaraton, tynge ned filsystemer, eller til og med koste deg penger i lagringsgebyrer hvis du er basert i skyen. Å finne riktig balanse er nøkkelen: logg hva du trenger, og ikke mer.

Se Også

For dere som liker å gå ekstra langt med loggingspraksisen deres, sjekk ut disse:

Og for litt bakgrunnslesning om hvorfor og hvordan man logger, dykk inn i: