2010-02-12 3 views
5

Esiste un modo per configurare un file log4j.xml in modo che più appendici condividano lo stesso layout? Ho copiato il parametro di layout in ognuna delle appendici, ma è un dolore (e sembra strano che avrei bisogno di farlo) per aggiornarlo in più punti se il modello cambia.java log4j.xml più appendici che condividono un layout

grazie, Jeff

+0

Quanti appendici hai? Se ne hai così tanti che è doloroso mantenerli, probabilmente stai andando per le cose nel modo sbagliato. – skaffman

+0

In questo momento ho 2. Un appender di console e un appender di file. Preferisco semplicemente che i messaggi di registro sembrino uguali in entrambi e che abbia lo stesso schema di layout per entrambi. Sembra che dovrei essere in grado di consolidare ... –

risposta

3

Hai pensato di usare log4j.properties invece di log4j.xml? La versione delle proprietà accetta la sostituzione delle variabili per i valori.

È possibile creare le proprie proprietà all'interno del file log4j.properties (someProp=value) e successivamente utilizzare ${someProp} per ottenere il valore.

Da quello che mi ricordo (non sono sicuro però: D) si può anche avere questo nel file log4j.xml ma le variabili devono essere definite come variabili di sistema (-DsomeProp=value) e nel vostro log4j.xml di nuovo utilizzare ${someProp}. Questa versione però è un po 'caotica perché non hai i parametri dichiarati nello stesso posto in cui li stai usando, come fai in log4j.properties.

+0

Farò un tentativo con log4j.properties. Penso che tu abbia ragione che supporta le proprietà, ma per qualche ragione mi piace il formato xml. Grazie. –