# ThreadId in Log4j



## felix.pdm (15. Feb 2011)

Hallo,
ich weiß nicht genau, ob das hier richtig ist...
ich arbeite mit Threads und Log4j und würde gern die ThreadId mit ins Log ausgeben, damit man erkennt, was zusammengehört. Weiß zufällig jemand wie das geht? 

Meine log4j.properties sieht folgendermaßen aus:

```
log4j.rootLogger=DEBUG, ConsoleAppender
log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsoleAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c: %m%n
```

Dies gibt immer nur den Threadnamen aus, der aber leider nicht großartig weiterhilft. Ich würde die ThreadId ja auch selber ins Log schreiben, das geht ja aber nur direkt in der run()-Methode. In allen Methoden in anderen Klassen, die aus der run() aufgerufen werden, habe ich keinen Zugriff auf die ThreadId.

Vielen Dank für jeden Hilfe.


----------



## fastjack (15. Feb 2011)

Eigentlich müßte %t so etwas wie Thread-1, Thread-15 erzeugen, die Zahl ist die Thread-ID. Wenn der Threadname überschrieben wird, gehts nicht mehr.


----------



## felix.pdm (15. Feb 2011)

stimmt...das war die falsche Config-Datei auf die ich geguckt hab. Jetzt gehts
Bei Sachen, die jetzt im Thread ausgeführt werden, steht jetzt z.B. 

```
pool-4-thread-6
```
 Wenn im Log allerdings was ausgegeben wird, das nicht in einem Thread ausgeführt wird kommt da jetzt:

```
EJB-Timer-12[target=jboss.j2ee:service=EJB3,ear=irgendwas.ear,jar=irgendwas.jar, name=irgendeineBean]
```
Das ist mir allerdings zu lang. Wollte das jetzt mit %.20 abschneiden. Allerdings fängt er dabei immer von hinten an zu zählen und lässt dann immer folgendes stehen:

```
name=irgendeineBean]
```
Ich bekomme es irgendwie nicht hin das er nur die ersten Zeichen stehen lässt. :S


----------



## XHelp (15. Feb 2011)

Ohne weiteres gar nicht: http://www.java-forum.org/allgemeine-java-themen/113379-log4j-layout.html


----------



## fastjack (15. Feb 2011)

Vielleicht hilft dir das ein wenig weiter:

Tracing in a multithreaded, multiplatform environment


----------

