Muss ich log4j auf slf4j aktualisieren [geschlossen]

10

Wir überprüfen unsere JEE-Webanwendung auf geplante Umgestaltungen. Einer der Vorschläge besteht darin, sie log4jdurch logbackoder zu ersetzenslf4j

Dem Team ist nicht klar, ob wir dies tun sollen - da wir derzeit folgen möchten, wenn es nicht kaputt ist, nicht in diesem Bereich reparieren .

Bearbeiten: Ich bitte nicht um einen Vergleich der Protokollierungs-Frameworks, sondern darum, ob es ein wertvolles Refactoring- Element ist, das Framework zu ändern, wenn wir mit log4j recht zufrieden sind

JoseK
quelle

Antworten:

18

Eine wichtige Frage, die Sie berücksichtigen sollten: Erstellen Sie eine Bibliothek, die von einer anderen Person verwendet wird, oder erstellen Sie das Endprodukt?

Im ersten Fall ist SLF4j sehr wichtig, da jemand Ihre Bibliothek in seine Software integriert, in der bereits eine Anmeldung vorhanden ist, und es wäre schön, wenn Ihre Klassen dies nur verwenden würden.

Im zweiten Fall würde ich sagen, Sie können es einfach so lassen, wie es ist. Denken Sie vielleicht darüber nach, slf4j für das nächste Projekt zu verwenden.

Tim Büthe
quelle
7

Tu es nicht. Verbringen Sie stattdessen Ihre Zeit damit, nützliche und wertvolle Funktionen zu implementieren.

Martin Wickman
quelle
6
-1: Die Protokollierung muss so gut wie möglich sein!
7
Also ist log4j, das sie verwenden, nicht nützlich genug? Das Ersetzen von Frameworks, nur weil es möglich ist, ist Zeitverschwendung. Das OP gab sogar an, dass die Protokollierung nicht unterbrochen wurde.
Martin Wickman
1
Ich würde das nicht ablehnen. Martin könnte recht haben. Wenn Jose ein fertiges Produkt hat (keine Bibliothek, siehe meine Antwort), sollte er es einfach so lassen wie es ist und Zeit woanders verbringen ...
Tim Büthe
2
@ Thorbjørn, nein, die Protokollierung (als Funktionen im Allgemeinen) muss so gut wie nötig sein . Wenn sie keine Probleme mit Log4J haben (übrigens haben Sie auch keine angegeben, die es erforderlich machen würden, es zu ersetzen), gibt es höchstwahrscheinlich bessere Verwendungsmöglichkeiten für ihre Zeit.
Péter Török
1
-1: Die bedingungslose Bevorzugung eines anderen ist meiner Meinung nach falsch. Versuchen Sie einfach, diese Antwort der Konditionalität von Tim Bueths Antwort gegenüberzustellen.
Ajeet Ganga
1

Wenn Log4J für Sie funktioniert, gibt es keinen Grund, dies zu ändern. Wenn dies nicht der Fall ist, suchen Sie nach einer Alternative, die genau das tut, was Sie benötigen. Diese kann slf4j sein oder auch nicht.

Nur weil jemand sagt, dass etwas schöner ist als etwas anderes, sollte dies niemals ein Grund sein, Ihre gesamte Anwendung zu ändern (oder das überhaupt neu zu übernehmen).

jwenting
quelle
0

Slf4j ist eine API, mit der Sie auswählen können, ob Sie zur Bereitstellungszeit log4j, logback oder die Standard-jdk-Protokollierung verwenden möchten, anstatt sich zur Kompilierungszeit zu entscheiden (was passiert, wenn Sie direkt in log4j codieren).

Slf4j stellt auch das {} -Konstrukt bereit, das teure toString () -Aufrufe verzögern kann, und vermeidet sie vollständig, wenn die Protokollanweisung nicht aktiviert ist.

Sie können den Motor später auswählen.

Newtopian
quelle