Das ist eine ausgezeichnete Frage.
Der erste Grund ist "warum nicht?" Wenn Sie ein Protokollierungsframework verwenden, profitieren Sie von den Wartungsvorteilen, wenn Sie bereits gepackte Elemente verwenden.
Der zweite Grund ist, dass Protokollierung subtil ist.Verschiedene Threads, Sitzungen, Klassen und Objektinstanzen können bei der Protokollierung eine Rolle spielen, und Sie möchten dieses Problem nicht spontan herausfinden.
Der dritte Grund ist, dass Sie möglicherweise einen Leistungsengpass in Ihrem Code finden. Wenn Sie herausfinden, dass Ihr Code langsam ist, weil Sie ohne Pufferung in eine Datei schreiben oder Ihre Festplatte keinen Speicherplatz mehr hat, weil der Logger keine alten Dateien überrollen und komprimieren kann, ist das ein Problem.
Der vierte Grund ist, dass Sie an syslog anhängen oder in eine Datenbank oder einen Socket oder in andere Dateien schreiben möchten. Frameworks haben diese Funktionalität eingebaut.
Aber wirklich, die erste Antwort ist die beste; Es gibt nur wenig Vorteile beim Schreiben Ihrer eigenen, und eine ganze Reihe von Nachteilen.
"hirntot einfach an eine Datei anhängen" - vs Multithread und vor allem Multicore wo Threads wirklich gleichzeitig ausführen? Microsofts ETW bietet pro-Prozessor-Pufferung von ETW-Einträgen, was meiner Ansicht nach die ideale Lösung ist. – pngaz