C++ Logging
-
Kommt wirklich aufs Projekt an. Wenn das eine normale Software ist, die bei Endkunden eingesetzt wird, kommst du ohne Logging schlecht aus. Das Betriebssystem hilft dir da auch nicht weiter.
-
Beim Endkunden ist nur als Meldung zu sehen:
Es ist ein kritischer Fehler aufgetreten. Bitte rufen Sie Ihren Systemadministrator!
nebst "catch(...) in der main()".
Ich genieße es manchmal, als Programmierer die jungen Admins zu ärgern, die mir auf dem Entwicklungsrechner Ports sperren wollen und so. Neee, Endkunde kriegt ordentliche Arbeit, zappzarrapp, FALLS ein Fehler kommt, machen wir den schnell weg.Je sicherer man in einem Gebiet wird, desto weniger loggt man da. Ich würde zum Beispiel gar keine Speicherfreigabesachen loggen, da sitzt mir C++-RAII so fest, das zu loggen wäre nur störender Müll. Alle open/close-Paare!!! Und das sind schon fast alle Programmierfehlerchen, die aus Versehen passieren. Vielleicht sogar alle, wenn der Progger ein wenig erfahren ist.
Vielleicht.
Was alles will man hingegen loggen?
-
volkard schrieb:
Was alles will man hingegen loggen?
Zustände die normalerweise zum Absturz führen. Nichts ist nerviger als wenn Programme tatsächlich abstürzen. Besser: Programm schreibt einen Log-Eintrag, zeigt eventuell eine Fehlermeldung und bricht die jeweilige Aktion ab.
-
@logger12345:
Woher hast du die Info? Ich bin selbst noch neu in C++, aber alle Klassen die ich neu ausprobiere sind voll mit couts und bei GUI-Sachen dann halt qDebug() << "bla"
-
CppNeuland schrieb:
@logger12345:
Woher hast du die Info? Ich bin selbst noch neu in C++, aber alle Klassen die ich neu ausprobiere sind voll mit couts und bei GUI-Sachen dann halt qDebug() << "bla"er redet von Programmen die verkauft werden. Du von Beispielen aus einem Buch.
-
Warum sollten denn bei verkaufter Software Debug-Features wie Logging noch aktiv sein?
-
CppNeuland schrieb:
Warum sollten denn bei verkaufter Software Debug-Features wie Logging noch aktiv sein?
Weil vielleicht nicht alle Fehler raus sind.
Software ist nicht nur Software aus dem Supermarkt. Ein Großteil der Softwareentwicklungswelt sind Individuallösungen (oder Lösungen mit sehr wenigen Abnehmern) und sehr enger Bindung von Kunden und Entwicklern. Solche Software wird 24/7 gepflegt und weiterentwickelt.
-
Ich habe 15 Jahre lang Software für Kunden geschrieben und nie bekamen die das Produkt mit aktiviertem Logging ausgeliefert. In meiner jetzigen Firma wird man gesteinigt wenn man vorm Ausrollen der Appliance noch ein Logging aktiv hat. Also achte ich schön vor dem Commit darauf, dass nix mehr geloggt wird.
So hat halt jeder seine Erfahrungen gemacht.
-
Du warst(bist?) Webentwickler mit kleinen Projekten. Da sieht das anders aus.
Und wir sprechen hier nicht von Debugausgaben wie irgendwelche echo's oder cout's die en paar Ergebniswerte ausgeben, sondern von der Querschnittsfunktionalität Logging. Dort wird systematisch was rausgeschrieben und gespeichert, dass Fehler nachvollziehbar werden auch wenn die Programmausführung schon lange beendet ist.
-
Ja stimmt es sind recht kleine Projekte, die werden zwar für mehrere tausend Euro verkauft, aber von der Komplexität sind sie eher klein und alle in PHP geschrieben mit ein paar Bashscripten.