# Log4j mit JBoss



## airbachmann (23. Mrz 2006)

Hallo erstmals,
ich habe eine kleine Frage (habe bereits im Forum gesucht).
Ich habe ein EJB und verwende JBoss.
Nun hat JBoss den Log4j ja bereits integriert. Wie kann ich diesen ins Projekt einbinden, damit ich ebenfalls über diesen Logger loggen kann??

Danke schon mal im voraus.

Gruss Reto


----------



## Bleiglanz (23. Mrz 2006)

was heisst "ins Projekt einbinden"??

zur Laufzeit hast du die Lib ja automatisch im Classpath (dank JBoss)

zum Übersetzen musst du sie halt wie üblich hinzufügen?

dann

Logger.getLogger("irgendwasnormalerweisederklassenname")


----------



## busch-d (23. Mrz 2006)

Du besorgst dir die apache lib commons-logging und dann rufst du im ejb den logger auf: 


```
Log logger = Log.getLog("DEIN_KATEGORIE_NAME");
```

Dann kannst du wie gewohnt loggen.

Um einstellungen für die Logkategorie zu tätigen editierst du die log4j.xml in dem conf verzeichnis deines JBOSS servers.


----------



## airbachmann (24. Mrz 2006)

Also ich möchte einfach "normal" über die Lib des JBoss loggen.
nun habe ich es so versucht.

```
private static final Category log = Category.getInstance(Klassenname.class);
```

Ich erhalte allerdings so beim Ausführen eine Fehlermeldung, dass kein Appender gefunden wurde.
Muss ich zuerst noch ein Appender beim JBoss einrichten oder sollte dies automatisch vom rest übernommen werden?

Gruss Reto


----------



## busch-d (24. Mrz 2006)

ja, das ist schon klar, aber um die Bibliothek verfügbar zu haben musst du sie erstmal in den classpath legen. dann die Zeile die ich eben geschrieben habe ist quasi das selbe was du geschrieben hast. die appender kannst du in der log4j.xml im jboss conf verzeichniss einsehen und verändern. 

und ich würde glaubich den static ausdruck rausnehmen.

viele Grüße


----------



## Gumble (29. Mrz 2006)

Muss jetzt einfach mal diesen Thread fuer meine Zwecke missbrauchen  :wink: 

Bei mir loggt log4j zuviel, d.h. ich habe alle limiter herausgeschmissen und den "Threshold"-Parameter im Console Appender (im log4j.xml) runtergesetzt ("All" oder "Debug")
Nun wird jeder Mist geloggt - eigentlich dachte ich immer, dass nur diejenigen Packages geloggt werden, zu dem es auch einen expliziert definierten Limiter (z.B. <category name="org.apache"><priority value="INFO"/></category>) gibt. 
Entweder ist dem nicht so oder es gibt irgendwie im JBoss-Kontext noch ein Konfigurationsfile dass das Logginglevel global auf Debug setzt. 

Im Falle das immer alles geloggt wird, folgende Frage: wie setzt man einen globalen Limiter (nicht den Threshold, da ich ja meine eigenen Packages in DEBUG sehen moechte)?
<category name=""> und <category> geht jedenfalls nicht.
Ich moechte nur ungern alle Packages durchgehen und gucken wie die first-level-domain heisst... ok "org" und "com" wuerde vermutlich 95% decken, aber es geht ums Prinzip 

(JBoss 4.0.2SP1)


----------



## Gumble (29. Mrz 2006)

hm, geht es euch auch so, dass ihr kurz nach dem ihr was postet, das problem, zumindest teilweise loest?

workaround fuer mein problem:

der globale appender mit dem hohen threshold (z.B. info, fatal)
<root>
      <appender-ref ref="CONSOLE"/>
<root>
dann einen eigenen appender mit niedrigem threshold (z.B. all, debug)

dann den limiter setzen
<category name="my.package.scope">
      <priority value="DEBUG"/>
      <appender-ref ref="MYLOGGER"/>
</category>


----------

