Wenn ich eine Java-Bibliothek entwickle, ist es empfehlenswert, Protokollanweisungen aus dem Code der Bibliothek heraus auszugeben?
Durch die Protokollierung in der Bibliothek werden das Debuggen und die Fehlerbehebung transparenter. Andererseits mag ich es nicht, meinen Bibliothekscode mit Protokollanweisungen zu verunreinigen. Gibt es auch Auswirkungen auf die Leistung?
Antworten:
Ja du solltest. Die Verwendung einer Protokollierungsfassade wie SLF4J bietet Ihnen Flexibilität, ohne Ihre Benutzer mit einem bestimmten Protokollierungsframework zu belasten.
Wenn Ihre Benutzer keine SLF4J-JAR-Datei enthalten (aus dem Benutzerhandbuch ):
Wenn Sie sich Sorgen über die Auswirkungen der Protokollierung auf die Leistung machen, lesen Sie diesen SLF4J-FAQ-Eintrag . Die Idee ist, dass Sie Parameter zum Protokollieren von Anweisungen bereitstellen, anstatt sie in eine Zeichenfolge einzufügen:
Ist SLF4J noch eine Holzfassade?
quelle
Ja , Sie sollten sich von Ihrem Bibliothekscode aus anmelden. Es hilft Ihnen nicht nur bei der Entwicklung, sondern wird auch den Benutzern der Bibliothek nützlich sein. Denken Sie daran, dass Sie die Protokollierungsstufen immer so einstellen können, dass nur die von Ihnen benötigten Protokollanweisungen angezeigt werden - und das können sie auch.
Vor kurzem habe ich Mybatis , ein Open-Source-ORM-Tool, verwendet. Ich habe ein Problem behoben, bei dem eine Abfrage, die meiner Meinung nach korrekt war, keine Ergebnisse lieferte. Es war eine parametrisierte Abfrage, und da Mybatis die Protokollierung im Bibliothekscode hat, konnte ich sie aktivieren und die aktuelle Abfrage anzeigen. Es war leicht zu erkennen, dass ich zwei Parameter vertauscht habe. Ohne Anmeldung in der Bibliothek hätte ich das Problem nicht annähernd so schnell finden können.
quelle