Frage

Ich habe einige JAR-Dateien, die an Clients verteilt werden, die log4j für die Protokollierung verwenden. Meine Frage ist, soll ich gehöre eine log4j.xml Konfiguration in der JAR-Datei oder hat den Client bietet ein, wenn sie anmelden wollen?

Mein Gefühl ist, die Konfigurationsdatei log4j.xml aus der Client-Gläsern zu verlassen, da die Apache-JAR-Dateien sind alle mit log4j Logging, aber sans log4j.xml.

War es hilfreich?

Lösung

Ja, lassen Sie es heraus. Es ist ein völliges Ärgernis, wenn Ihre log4j Konfigurationsdatei ignoriert wird, weil einer der 60 Bibliotheken von Drittanbietern Ihres App eine eigenen enthält.

Andere Tipps

Die gute Sache über log4j in Ihrem Fall ist, dass Ihr Glas sollte wirklich nicht darum kümmern muß. Der grundlegende Anwendungsfall von log4j ist:

  1. Besorgen Sie sich ein Logger-Objekt für die aktuelle Klasse
  2. Rufen Sie eine der Methoden, die auf diesem Logger, wie debug("some message");

Wenn die Gläser Sie versenden sind durch eine größere Anwendung verwendet werden, dann idealerweise Ihr Code nur, dass die beiden oben aufgeführten Schritte. Auf diese Weise wird Ihr Code einfach Logger Objekte aus der bereits konfigurierten log4j Instanz in der Client-Anwendung erhalten. Ihr Produktionscode wird dann entkoppelt, das weiß, wie log4j zu konfigurieren.

Jede Protokollierung Sie müssen für Ihre Entwicklung der Gläser sehen, kann durch die Konfiguration eines log4j Instanz in Unit-Test setUp erreicht werden () -Methoden oder etwas ähnliches, die nicht mit der Produktion gebündelt wird erhalten Code zum Client gehen.

würde ich eine Standard log4j Konfiguration setzen, die Sie für Ihre Kunden in der Dokumentation nützlich sein erwarten. Auf diese Weise interessierte Menschen sehen können, welche Protokollierungsoptionen Sie haben (in der Regel bestimmte Klassen haben interessantere Log-Meldungen aus der Sicht des Benutzers). Ich finde es ärgerlich, wenn ich eine Drittanbieter-lib log4j verwenden und es hat keine Dokumentation, und es gibt Protokollmeldungen meinen Bildschirm füllen und ich muß versuchen, herauszufinden, wie bestimmte Log-Meldungen zu aktivieren oder zu unterdrücken.

Wenn Sie log4j in Ihrer Anwendung verwenden, werden dann schließen Sie es in Ihrem Projekt. Wenn Sie nicht sind, warum dann würden Sie es in dort setzen? Was passiert, wenn Client A will log4j Version 1.2 und Client B will log4j Version 1.3.

Lassen Sie sie entscheiden, was sie für ihre Projekte benötigen und Sorgen über das, was Sie für Ihr benötigen.

würde ich die XML-Konfigurations hinzufügen und mit dem Befehl laden für den Benutzer unterschiedliche Konfiguration und Optionen zeigt. Dadurch wird es einfacher für sie entweder oder unterstützen zusätzlich die Protokollierung zu aktivieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top