2010-02-12 6 views
5

Gibt es eine Möglichkeit, eine Datei log4j.xml so zu konfigurieren, dass mehrere Appender dasselbe Layout verwenden? Ich habe den Layout-Parameter in jeden der Appender kopiert, aber es ist ein Schmerz (und scheint seltsam, dass ich dies tun müsste), um es an mehreren Stellen zu aktualisieren, wenn sich das Muster ändert.java log4j.xml mehrere Appender, die ein Layout teilen

Dank, Jeff

+0

Wie viele Appender haben Sie? Wenn Sie so viele haben, dass es schwierig ist, sie zu erhalten, werden Sie wahrscheinlich Dinge falsch machen. – skaffman

+0

Im Moment habe ich 2. Eine Konsole Appender und Datei Appender. Ich bevorzuge nur die Protokollnachrichten, um in beiden gleich zu aussehen, und ich habe das gleiche Layoutmuster für beide. Scheint so, als ob ich konsolidieren könnte ... –

Antwort

3

Haben Sie darüber nachgedacht, log4j.properties statt log4j.xml verwenden? Die Version der Eigenschaften akzeptiert die Variablensubstitution für die Werte.

Sie können eigene Eigenschaften in der Datei log4j.properties (someProp=value) erstellen und später ${someProp} verwenden, um den Wert abzurufen.

Von was ich erinnere (nicht sicher, obwohl: D) Sie können dies auch in der Datei log4j.xml haben, aber die Variablen müssen als Systemvariablen definiert werden (-DsomeProp=value) und in Ihrer log4j.xml verwenden Sie wieder ${someProp}. Diese Version ist jedoch ein wenig unordentlich, weil Sie die Parameter nicht an derselben Stelle deklariert haben, an der Sie sie verwenden, wie Sie es in log4j.properties tun.

+0

Ich werde es mit log4j.properties versuchen. Ich denke, du hast Recht, dass es die Eigenschaften unterstützt, aber aus irgendeinem Grund mag ich das XML-Format besser. Vielen Dank. –

Verwandte Themen