Ich bin Entwickler in einem Unternehmen, dessen Produkte im Ausland eingesetzt werden. Wenn ein Support-Team nach einer Problemdefinition fragt, sind meine einzigen Diagnosetools meine Protokolldateien und eine Kopie der Kundendatenbank. Unter Verwendung der Datenbank und meiner Entwicklungsumgebung habe ich die Möglichkeit, den fehlerhaften Fall zu reproduzieren, da ich die eingehenden Daten in meinem Modul und den damit verbundenen Aktionen protokolliere. Wenn ich den Fehler mithilfe der von mir gesammelten Daten reproduzieren kann, kann ich ihn durch Debuggen beheben. Wenn ich keine Protokolldateien hätte, müsste ich mich auf die Beschreibung des Kunden oder des Supportteams verlassen, was in welchem Fall passiert (was mit großer Wahrscheinlichkeit irreführend ist).
Zweitens gibt mir die Protokollierung die Möglichkeit, die Engpässe meines Moduls am implementierten Standort zu erkennen, da ich das Datum und die Uhrzeit bestimmter Aktionen protokolliere und dann sehen kann, welche Aktion wie viel Zeit in Anspruch nimmt.
Angenommen, unsere Lösung besteht aus 6 Modulen und in meinen Protokolldateien werden Fehlerprotokolle zu Datenbank-Timeouts angezeigt. Wenn diese Fehler auch in 5 anderen Modulen protokolliert werden, steigt die Wahrscheinlichkeit, dass es sich um ein SQL Server-Problem handelt. Wenn dies nur in meinem Modul protokolliert wird, wird die Wahrscheinlichkeit, dass meine Abfragen fehlerhaft sind, größer. Ich denke, solche Dinge sind nützliche Indikatoren.
Welche Art von Daten in meinen Protokolldateien angezeigt werden, hängt von der Konfiguration der Protokollebene ab. Wenn dies ein neues Produkt ist, setzen wir die Protokollebene auf "Alle", um so viele Daten wie möglich zu erfassen. Wenn wir das Produkt verbessern, möchten wir möglicherweise lieber die Protokollebene "Fehler" beibehalten, um nur die Fehlerprotokolle, nicht jedoch die Protokolle der Informationsebene usw. zu protokollieren.