Log4j und SLF4J - Laufzeitänderungen

Sekundentakt

Bekanntes Mitglied
Hallo,

ich suche zurzeit nach einer Möglichkeit zur Laufzeit die Optionen meiner log4j.properties-Datei zu überschreiben.

Hintergrund des Ganzen ist, dass ich auf dem DEBUG-Level sehr viele Ausgaben in bestimmten Bereichen setze, die ich wirklich nur dann benötige, wenn ich mir das Verhalten meiner Applikation unter bestimmten Umständen genauer anschauen will.

Standardmäßig ist das Log-Level INFO. Ich möchte nun aber nicht jedesmal eine .war-Datei neu kompilieren und ggf. sogar auf nen Server neu hochladen, die Applikation anhalten, neustarten usw. nur, weil ich das Log-Level verändern möchte.

Ich konnte bisher keine nützlichen Infos zu dem Thema finden, ohne dass ich log4j-Objekte instantiiere.

Hat jemand vielleicht einen Ansatz?

Beste Grüße
 

Sekundentakt

Bekanntes Mitglied
Hi Maki,

danke für Dein Feedback!
Mit log4j ist es auch kein Thema. Da habe ich zumindest einige Beispiele gesehen.

Ich vermute mal, dass das Log-Level eine statische Variable ist.
Ich könnte mir vorstellen, dass ich eine Log4j-spezifische Klasse schreibe, die das Log-Level nach meinen Wünschen ändert.
Dann hätte ich nur diese eine Klasse, die ich austauschen müsste, wenn ich ein anderes Framework verwenden will (warum auch immer).

Ich hab's bisher aber noch nicht ausprobiert und es klingt auch etwas unschön...
 
M

maki

Gast
Dann hätte ich nur diese eine Klasse, die ich austauschen müsste, wenn ich ein anderes Framework verwenden will (warum auch immer).
Ganz ehrlich?
De Aufwand lohnt sich imho nie.
Erstens weil dieser Fall eigentlich nie eintritt (bei mir das letzte mal 2002 weil Webphere auf commons-logging besteht), und zweitens weil das mit search&replace so schnell erledigt ist, dass es sich imho nicht lohnt dafür eine Zeile code mehr zu schreiben.

Flexibilität erhöht die Komplexität, man sollte sich wirklich genau überlegen was man flexibel braucht, und das nicht auf irgendwelchen "ist vielleciht mal nützlich" Überlegungen basieren lassen, sondern auf konkreten Anforderungen.
 

Sekundentakt

Bekanntes Mitglied
Das klingt sinnvoll. Zurzeit gibt es allerdings eine SLF4J basierte Applikation und leider kann ich da nicht alles umstellen, zumal genutzte Frameworks ebenfalls auf SLF4J aufbauen.

Ich komme also nicht drumherum, ohne ein halbes Framework umzugestalten...

Deine Argumentation ist in sich stimmig, für das konkrete Problem kann ich darauß aber keinen Nutzen ziehen :(
 
M

maki

Gast
Zurzeit gibt es allerdings eine SLF4J basierte Applikation und leider kann ich da nicht alles umstellen
Das ist natürlich ein Grund, falls du direkte Refenrezen im Code auf SLF4J meinst(!).

zumal genutzte Frameworks ebenfalls auf SLF4J aufbauen.
Das macht gar nix, nutze ständig Frameworks die log4j, slf4j, commons-logging etc einsetzen, ich nutze trotzdem immer log4j :)

Deine Argumentation ist in sich stimmig, für das konkrete Problem kann ich darauß aber keinen Nutzen ziehen
Ja, in deinem Falle musst du es wohl wirklich so machen wie du selber vorgeschlagen hattest, was ich nicht verstehe: Wie kommt dann log4j da rein?
Da werden ja wohl kaum 2 logging Frameworks im Code verwendet in einem Projekt?
 
M

maki

Gast
Logback sieht echt gut aus muss ich zugeben, villeicht ist es ja Zeit für mich das Logging Framework zu wechseln :)
 
A

AwsmDude

Gast
Ist auch vom selben Kopf wie log4j und slf4j :)
Habe mittlerweile komplett auf Logback umgestellt und bin sehr zufrieden. Ältere Anwendungen von mir sind noch mit log4j. Extra umgestellt habe ich jetzt nicht, aber zukünftige mache ich nur noch mit Logback.
 
M

maki

Gast
Ceki Gülcü macht gute Arbeit (auch wenn er kein einfacher Typ zu sein scheint) :)
Hätte man log4j einfach in die Java API übernommen hätte man sich viel Ärger und viele viele halbgare Loggingframeworks sparen können.. wurde damals aber aus "politischen" Gründen nicht gemacht wenn ich mich recht erinnere.

Die Tatsache das der SpringDM Server auch damit arbeitet bedeutet für mich dass OSGi auch kein Problem darstellt!
 

Sekundentakt

Bekanntes Mitglied
Ja, in deinem Falle musst du es wohl wirklich so machen wie du selber vorgeschlagen hattest, was ich nicht verstehe: Wie kommt dann log4j da rein?
Da werden ja wohl kaum 2 logging Frameworks im Code verwendet in einem Projekt?

Nein! Natürlich nicht. Aber ich nutze SLF4J mit ner log4j-Bridge, weil die eingesetzten Frameworks ebenfalls auf log4j oder slf4j aufbauen - da ergab sich das so.

Da SLF4J bei mir aber mit log4j.properties arbeitet, suche ich zurzeit nach ner Möglichkeit zur Laufzeit das Logging-Verhalten zu verändern.

Ich hoffe jetzt ist klar was ich meine :).

Im Zweifelsfall muss ich wirklich in den Sourcecode reinschauen und hoffen, dass das Log-Level eine statische Variable ist. Dann brauche ich wie gesagt nur ne log4j-spezifische Klasse.

Logback schaue ich mir mal bei Gelegenheit an :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M log4j Problem mit jlink Allgemeine Java-Themen 19
T Log4j integrieren, wie? Allgemeine Java-Themen 7
T Logging mit org.apache.logging.log4j Allgemeine Java-Themen 1
M Schutz vor Log4J Allgemeine Java-Themen 2
W Sicherheitslücke in Log4j Allgemeine Java-Themen 66
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
MiMa mit Log4j einzeln Protokollieren Allgemeine Java-Themen 7
A JWS application - log4j wie configurieren Allgemeine Java-Themen 1
A Log4j configurieren Allgemeine Java-Themen 1
L Applet Wo loggt log4j bei Applets Allgemeine Java-Themen 0
T Log4J - Deaktivierung für einzelne Klassen Allgemeine Java-Themen 7
D Log4J RollingFileAppender rolliert nicht Allgemeine Java-Themen 3
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
O log4j - Verständnisfrage Allgemeine Java-Themen 1
O [log4J] Unterschied SocketServer <-> SimpleSocketServer Allgemeine Java-Themen 0
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
O log4j - eigenes Log für einzelne Klasse Allgemeine Java-Themen 5
J log4j ohne propertiedatei Allgemeine Java-Themen 4
H [Logback || log4j] Wie richtig loggen / Log Instanzen verwalten Allgemeine Java-Themen 2
A Threads Log4J Logger wird "überschrieben" Allgemeine Java-Themen 3
N Log4J PatternLayout Allgemeine Java-Themen 2
S Frage zu Format Modifiers in Log4j Allgemeine Java-Themen 11
S log4j, root logger logt nur FATAL? Allgemeine Java-Themen 9
P Wie bei log4j den Dateipfad der Logdatei zur Laufzeit ändern? Allgemeine Java-Themen 3
C Grundsätzliches zu log4j Allgemeine Java-Themen 8
C Log4J mit 2 Appender Allgemeine Java-Themen 4
reibi log4j - Bestes Konzept Allgemeine Java-Themen 10
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
F Log4J - Detaillierte Logeinträge Allgemeine Java-Themen 2
F log4j DailyRollingFileAppender Allgemeine Java-Themen 2
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
B Log4J und Categories Allgemeine Java-Themen 4
P Log4J - logt nicht Allgemeine Java-Themen 5
L log4j layout Allgemeine Java-Themen 3
E Eclipse Axis, Jena, HTTPClient - log4j Meldungen deaktivieren? Allgemeine Java-Themen 6
ruutaiokwu log4j appender in log4j.xml in java referenzieren... Allgemeine Java-Themen 6
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
H log4j & taskname Allgemeine Java-Themen 3
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
S log4j, Datum in Fileappendern formatieren Allgemeine Java-Themen 4
G Log4J Verzeichnis der Log-Datei konfigurieren Allgemeine Java-Themen 8
K log4j-Warnung mit Quartz Allgemeine Java-Themen 3
G log4j package filter Allgemeine Java-Themen 10
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
S log4j - doppeltes Logging Allgemeine Java-Themen 4
R log4j - Ausgabe der Logs Allgemeine Java-Themen 3
S log4j Logging über mehrere Klassen Allgemeine Java-Themen 13
MQue log4j mit hibernate Allgemeine Java-Themen 3
G Log4J - Logs älter als 3 Tage löschen Allgemeine Java-Themen 5
S log4j.dtd nicht in jar gefunden Allgemeine Java-Themen 7
H log4j - täglichen DailyRollingFileAppender Allgemeine Java-Themen 2
H Mit Log4j erzeugte Datei einlesen Allgemeine Java-Themen 2
hdi log4j in eine Datei Allgemeine Java-Themen 21
S Log4J DailyRollingFileAppender Allgemeine Java-Themen 4
M Log4J funktioniert nicht unter anderem Benutzer Allgemeine Java-Themen 5
B Log4j --- Welchen Appender, wie konfigurieren Allgemeine Java-Themen 3
F Logger in mehrere Dateien mit log4J Allgemeine Java-Themen 4
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
ARadauer log4j DailyRollingFileAppender Allgemeine Java-Themen 4
B log4j löscht meine Logdateien Allgemeine Java-Themen 2
V Feinheitsfragen zu log4j Allgemeine Java-Themen 21
R log4j Allgemeine Java-Themen 5
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
K log4j Anzeigeformat Allgemeine Java-Themen 2
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
A log4j 1.3 und ändern der log Konfiguration zur Laufzeit Allgemeine Java-Themen 4
J Alte Log Files löschen mit log4j Allgemeine Java-Themen 3
U Log4j - gleichzeitige geöffnete File handles Allgemeine Java-Themen 2
P log4j Allgemeine Java-Themen 21
P log4j Allgemeine Java-Themen 9
B log4j FileAppender Dateizugriff Allgemeine Java-Themen 7
G log4j Allgemeine Java-Themen 13
J Log4j / commons-logging Allgemeine Java-Themen 3
V log4j Problem . Allgemeine Java-Themen 8
D Log4j-HTMLLayout Allgemeine Java-Themen 2
G Log4j - Log-File Allgemeine Java-Themen 6
Q [log4j] nur ein Mal konfigurieren Allgemeine Java-Themen 2
Y log4J XML Konfiguration Allgemeine Java-Themen 8
K Logging mit Log4j Allgemeine Java-Themen 2
P log4j: Übersicht der Properties Allgemeine Java-Themen 5
G eigener logger mittels classe (dynamische logfilename) log4j Allgemeine Java-Themen 15
K log4j - eigene Info-Ausgaben Allgemeine Java-Themen 5
K log4j - Fehlermeldung Allgemeine Java-Themen 2
J stackTrace mit log4j loggen Allgemeine Java-Themen 9
F log4j XML-Syntax Allgemeine Java-Themen 4
F log4j loggen in mehrere Dateien Allgemeine Java-Themen 4
S Logging mit log4j Allgemeine Java-Themen 17
S Log4J mit 2 Appender, einer soll nur INFO loggen Allgemeine Java-Themen 3
Q Ant und org.apache.log4j.xml.DOMConfigurator Problem Allgemeine Java-Themen 2
S log4j Allgemeine Java-Themen 2
V log4j.properties wird in der jar Datei nicht gefunden? Allgemeine Java-Themen 2
F [Log4J] Logdatei mit einem schlag über 200MB! Allgemeine Java-Themen 4
M Log4J - Protokollierung auf die GUI zaubern! Allgemeine Java-Themen 11
S log4j Protokoll in XML Allgemeine Java-Themen 11
B Wohin mit log4j.properties Allgemeine Java-Themen 2
M Rat gesucht: Logging (log4J oder java.util.logging oder .) Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben