# log4J XML Konfiguration



## y0dA (2. Apr 2007)

Hallo!

folgendes XML File liegt hier vor mir:


```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true" threshold="all">

<appender name= "CONSOLE" class= "org.apache.log4j.FileAppender" >
	<param name="File" value="System.out" />
	<layout class= "org.apache.log4j.PatternLayout" >
	<param name= "ConversionPattern" value= "%d{ABSOLUTE} - %p %c - %m%n"/>
	</layout>
</appender>


<appender name= "LOGFILE" class= "org.apache.log4j.FileAppender" >
	
	<param name= "File" value="C:/Programme/Apache Software Foundation/Tomcat 5.0/logs/eMoris_SITE.log" />
	
	
	<layout class= "org.apache.log4j.PatternLayout" >
	<param name= "ConversionPattern" value= "%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
	</layout>
</appender>

<root>
	<priority value="warn"/>
	<appender-ref ref= "CONSOLE" />
	<appender-ref ref= "LOGFILE" />
</root>

</log4j:configuration>
```

Frage 1:
_<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true" threshold="all">_
-->Wofür wird in dieser Zeile ein treshold gesetzt?

Frage2:
_<root>
	<priority value="warn"/>
	<appender-ref ref= "CONSOLE" />
	<appender-ref ref= "LOGFILE" />
</root>_
-->Diese Zeilen definieren das Log Level für die Appender Console und Logfile?

mfg


----------



## y0dA (3. Apr 2007)

Hmm..
Weiß es keiner oder is die Frage keine Antwort wer :/


----------



## SlaterB (3. Apr 2007)

wenn dir eine Antwort hilft: ich zumindest weiß es nicht 
gibts dafür keine Anleitung?


----------



## y0dA (3. Apr 2007)

Naja wenn ich eine "Anleitung" gefunden hätte dann müsste ich nicht fragen 

Wie gesagt, ich habe das so übernommen.


----------



## NTB (3. Apr 2007)

Antwort zu Frage2:
Das Element heißt <root> also wird hier der Rootlogger definiert. Der Rootlogger wird auf den Level "warn" gesetzt.
An ihn drangehängt werden die appender CONSOLE und LOGFILE, die wiederum in ihren eigenen Elementen definiert werden. Sie erben den Level. Wenn in Ihnen kein eigener Level angegeben ist, stehen sie also auch auf "warn".

Ich finde eine Konfiguration von log4j über eine .properties sehr viel übersichtlicher...


----------



## y0dA (3. Apr 2007)

Danke, da wäre nur mehr Frage 1 zu beantworten


----------



## NTB (3. Apr 2007)

"log4j threshold" gegoogled führt mich zu: "The repository-wide threshold filters logging requests by level regardless of logger."

ich vermute mal, dass also dieser threshold eingehalten wird, egal, was die logger unten drunter definiert haben. das lässt sich leicht testen


----------



## NTB (3. Apr 2007)

Ich editiere mal nicht, weil es eine neue Erkenntnis ist:
Der Threshold ist tatsächlich eine Log4j weite Einstellung. D.h. wenn ein Logger auf TRACE steht, der Threshold aber auf WARN, dann wird alles bis WARN ausgegeben, TRACE und DEBUG aber nicht.


----------



## y0dA (4. Apr 2007)

Ahh..danke für die Infos.

mfg


----------

