2017-01-11 4 views
1

Ich arbeite an einem Java-Dienste, die mehrere Anfragen gleichzeitig behandelt. Ich benutze log4j ohne zusätzliche Konfiguration. Im Grunde gehen alle Logs in die gleiche Datei, so dass es sehr schwierig ist, jedes Problem in Bezug auf eine bestimmte Anfrage zu beheben.
Log4j Anhängen an Protokolldatei, wenn der Thread fertig ist

Ich möchte noch alle Protokolle in der gleichen Datei (i DailyRollingFileAppender verwenden werde mein Leben einfacher zu machen), aber Ich möchte die Protokolle in einer Weise, dass alle Protokolle aus einem Thread sollte auf einmal angehängt werden. Mit dieser Anordnung kann ich die Protokolle für eine Anfrage an einem Ort finden.

Also was sollte getan werden, um dies zu erreichen.

Dank

Antwort

1

Log4J ermöglicht die Nachricht, die Ausgabe in die Protokolldatei erhält bestimmte Muster zu haben, und es wird in der Regel als Teil der log4j.xml (oder .properties-Datei) zur Verfügung gestellt.

Mithilfe des Nachrichtenmusters können wir den Namen des Threads in der Protokolldatei ausgeben lassen. Dies geschieht durch Hinzufügen von % t in das Nachrichtenmuster.

Aber ich bin nicht sicher, ob Log4J entworfen werden würde, um alle Protokolle für einen Thread an einem Ort auszugeben. Dies liegt daran, dass in Webanwendungen die vom Server ausgeführten Threads lange Zeit bestehen bleiben. Daher könnte derselbe Server-Thread, der die Anfrage von User-1 bearbeitet hat, die Anfrage von User-2 ausführen. Wenn Sie also annehmen, dass für jede Anfrage ein Thread generiert wird, ist dies meiner Meinung nach nicht der Fall.

Sie können jedoch in log4j.xml verschiedene Appender und Logger für verschiedene Anwendungsmodule verwenden, so dass Sie Protokolle für bestimmte wichtige Module an einer Stelle finden.

Verwandte Themen