log4j, root logger logt nur FATAL?

Hallo,

ich habe etwas Probleme mit der Vererbung der Logger bzw. insbesondere dem root logger und der korrekten Ausgabe:

Mein Logger ist so definiert:
Java:
package SWSoft.Application.JOpus.gui;

import org.apache.log4j.Logger;
...

public class ElemMP3P extends ElemTabPage implements MouseListener, ActionListener,
		RefreshListener, TimerCallback {
	private static final Logger logger = Logger.getLogger(ElemMP3P.class);

Zum einkreisen des Problems habe ich irgendwo diese Zeilen im Code:
Java:
logger.fatal( "...  switchTitle = " + switchTitle );
logger.warn ("...  switchTitle = " + switchTitle );
logger.debug( "...  switchTitle = " + switchTitle );

Und so sieht meine XML Konfiguration aus:
[XML]
<logger name="SWSoft.Application.JOpus.gui.ElemMP3P">
<level value="all" />
<appender-ref ref="console" />
<appender-ref ref="logFile"/>
</logger>
<root>
<level value="all"/>
<appender-ref ref="console"/>
<appender-ref ref="logFile"/>
</root>
[/XML]

Den separaten Logger für die Klasse habe ich auch schon rausgeworfen, aber das Problem bleibt: Ich bekomme immer genau eine Zeile, wenn der oben gezeigte Quellcode durchlaufen wird, FATAL wird geloggt, die anderen nicht.

Was habe ich übersehen???

Viele Grüße,
Stephan
 

hemeroc

Bekanntes Mitglied
Hi,
ich bin nicht sicher ob ich alles richtig verstanden habe weil du den root-logger nicht explizit verwendest ich hab aber einfach mal ein schnelles Beispiel geschrieben und poste dir den Output vielleicht hilfts ja was, wenn was ned geht wie du es erwartest dann sag bescheid.

Java:
package logtest;

import org.apache.log4j.Logger;

public class LogTest {
	
	private Logger	rootLogger	= Logger.getRootLogger();
	private Logger	classLogger	= Logger.getLogger(LogTest.class);
	
	public LogTest() {
		
		this.rootLogger.fatal("rootLogger fatal");
		this.rootLogger.warn("rootLogger warn");
		this.rootLogger.debug("rootLogger debug");
		
		this.classLogger.fatal("classLogger fatal");
		this.classLogger.warn("classLogger warn");
		this.classLogger.debug("classLogger debug");
		
	}
	
	public static void main(String[] args) {
		new LogTest();
	}
	
}

[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN"
"http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">

<log4j:configuration>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>

<logger name="logtest.LogTest">
<level value="warn"/>
</logger>

<root>
<level value="all" />
<appender-ref ref="console" />
</root>

</log4j:configuration>[/XML]

Code:
12:29:25,759 FATAL root:12 - rootLogger fatal
12:29:25,760  WARN root:13 - rootLogger warn
12:29:25,760 DEBUG root:14 - rootLogger debug
12:29:25,760 FATAL LogTest:16 - classLogger fatal
12:29:25,760  WARN LogTest:17 - classLogger warn

Liebe Grüße
Hemeroc

EDIT: getestet hab ich das mit folgender log4j-Version: log4j-1.2.16.jar
 
Hallo, ja, das ginge wahrscheinlich, ich habe noch andere Klassen, die auch einen eigenen Logger und eine eigene Konfiguration dafür bekommen, das klappt gut. Aber hier will ich explizit, dass der Logger selbst NICHT explizit konfiguriert wird, sondern der soll auf die rootlogger Konfiguration zurückgreifen. Das sollte er ja per default tun, tut er aber nicht, soweit ich das feststellen kann...
 

hemeroc

Bekanntes Mitglied
Wenn ich das

[XML]<logger name="logtest.LogTest">
<level value="warn"/>
</logger>
[/XML]

wegnehme dann arbeitet mein Logger so wie im root-logger konfiguriert du kannst auch auf Package ebene konfigurieren wenn du das möchtest.
 
Tja, das habe ich befürchtet, aber warum tut es das bei mir dann nicht??? Wie gesagt, die warn- und debug Messages aus meinem Beispiel (mittleres Fragment) sehe ich nie, warum nicht?!?
 

hemeroc

Bekanntes Mitglied
Kannst du mir mal den kompletten Code posten?
Inklusive dem genauen config-File und wie er heißt und auch was für eine log4j Version du verwendest, dann versuch ichs mal bei mir zu rekonstruieren.
LG
 
Hi, alle Klassen zusammen sind 97, dazu kommen noch einige Konfigurationsfiles plus jars. Ist also mittlerweile recht groß gewachsen... Und es hat sich auch gerade erübrigt; als ich überlegte, wie ich das Ganze in einer Klasse isolieren kann ist mir etwas aufgefallen. In der Tat gab es ein weiteres Feld 'logger' welches das, was ich nutzen wollte, verdeckt hat. Gestern hab ich den ganzen Tag draufgeschaut, rechts rum gedreht, links rum gedreht, nix gesehen. Naja, das haben wir wohl alle beim entwickeln schon mal erlebt, oder? Trotzdem danke für die Hilfe, letztlich hat es mich ja auf die Lösung gebracht.

Viele Grüße,
Stephan
 
Hmmm, hab ich nicht explizit nach geschaut, aber ich denke das ist ein ganz normaler Fall - ein privates Feld der Klasse war durch ein Aufrufargument der Methode verdeckt...

Stephan
 
M

maki

Gast
Das ist todsicher eine Warnung ;)

Warnungen sollte man eben nicht ignorieren, sind nicht umsonst da.
 
Ä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
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
S Log4j und SLF4J - Laufzeitänderungen Allgemeine Java-Themen 11
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