C++:
Lokitus
Kuinka:
Oletetaan, että työskentelet Linux-koneella ja haluat dumpata lokitiedostot tiedostoon käyttäen hyvää vanhaa C++. Haluat sisällyttää <iostream>
- ja <fstream>
-kirjastot tiedosto-operaatioita varten. Tässä on nopea esimerkki:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ofstream logFile("appLog.txt", std::ios::app); // Avaa lisäystilassa
if (!logFile.is_open()) {
std::cerr << "Lokitiedoston avaamisessa oli ongelma!" << std::endl;
return 1;
}
logFile << "Sovellus käynnistetty" << std::endl;
// ... jossain sovelluksesi logiikassa
logFile << "Tärkeä tapahtuma on sattunut" << std::endl;
// Älä unohda sulkea tiedostovirtaasi
logFile.close();
return 0;
}
Jos seuraat lokitiedostoa komennolla tail -f appLog.txt
, pitäisi näkyä:
Sovellus käynnistetty
Tärkeä tapahtuma on sattunut
Siistiä, sinulla on aikaleimattu tapahtumarekisteri!
Syvä Sukellus
Lokiin kirjaaminen on yhtä vanhaa kuin tietotekniikka itse, juontuen aidoista merkeistä paperilla, joiden avulla jäljitettiin muinaisten tietokoneiden toimintaa. Nykyajan ohjelmointimaailmassa kaikki on kyse monimutkaisista ohjelmistoratkaisuista. On suoraa-tiedostoon kirjaavaa lokitusta, kuten yllä oleva nopea ja likainen esimerkki, tai voit hemmotella itseäsi hienostuneemmalla lokituskehyksellä, kuten Log4cpp tai Boost.Log C++ alueella; nämä pahat pojat tarjoavat lokitustasoja, formaatin hallintaa ja enemmän.
Puhuttaessa tasoista, lokituskäytäntöjen parhaisiin tapoihin kuuluu eri vakavuustasojen käyttäminen – info, debug, varoitus, virhe, kohtalokas – jotta voit suodattaa kohinan, kun yrität murskata bugeja tai selvittää, miksi sovelluksesi käyttäytyy kuin oikukas teini.
Suorituskykynoteerauksena, älä lähde löysäilemään lokien kanssa. Liiallinen lokitus voi muuttaa salamannopean sovelluksesi etanan maratoniksi, hidastaa tiedostojärjestelmiä tai jopa tulla sinulle kalliiksi tallennusmaksuina, jos olet pilvipohjainen. Oikean tasapainon löytäminen on avain: kirjaa mitä tarvitset, eikä yhtään enempää.
Katso Myös
Niille teistä, jotka haluavat mennä pidemmälle lokituskäytäntöjen kanssa, katsokaa näitä:
- Boost.Log-kirjasto joitakin raskaita lokitusominaisuuksia varten.
- Googlen glog-kirjasto, jos olet kiinnostunut siitä, mitä teknologiajätin kokit käyttävät sovellustensa lokitukseen.
- Log4cpp-kirjasto mukautettavaan lokitusmekanismiin.
Ja taustatietoja lokituksesta miksi ja miten, syventykää:
- Tämä Stack Overflow -ketju lokitusparhaista käytännöistä antaa vertaisarvioidun syväsukelluksen aiheeseen.