Ein möglichst umfassendes Logging klappt zum Beispiel nur mit Kompilaten, die Debug-Informationen beinhalten.
Warum? Es reicht doch, wenn ggf. die Adresse geloggt werden, sofern zu jeder ausgelieferten Version auch die Map-Files und externen Debuginformationen existieren.
Außerdem steht da wieder die Performance-Frage. [...] Selbst wenn das logging komplett inline sein sollte, bedeutet "standardmäßig deaktiviert" immer noch etliche Abfragen.
Naja, so viel ist das auch wieder nicht.
Delphi-Quellcode:
if Assigned(MyLogFunction) then
...
Das sollte nicht viele Zyklen brauchen.
Es ist eher die Frage was geloggt wird. Und welche Informationen davon für den laufenden Betrieb relevant sind, wenn es zu einem Fehler kommt. Das Loggen an sich sollte in nahezu allen Fällen von der Rechnerzeit her kaum relevant sein, wenn man es auf diese Weise einbaut und deaktiviert hat.