2011-09-19 11 views
5

Sto utilizzando log4j per lo scopo di registrazione nella mia applicazione. Dal momento che ora a configurare la registrazione stavo usando il seguente codice:Log4j configura e guarda non funziona correttamente

LogManager.resetConfiguration(); 
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("log4j.properties"); 
Properties props= new Properties(); 
props.load(stream); 
PropertyConfigurator.configure(props); 

Ma il problema con questo era, che ogni volta che ho voluto cambiare il livello di registrazione durante il processo, ho dovuto riavviare il server. Così ho cambiato il codice per: -

LogManager.resetConfiguration(); 
PropertyConfigurator.configureAndWatch(("log4j.properties", 900000L); 

questo codice idealmente dovrebbe aiutare a ri-caricare il file log4j.properties dopo il tempo specificato, che ho citato come 15 minuti. Ma ancora il codice non funziona

Mi manca qualcosa durante il codice?

Saluti.

+1

Avete creato un esempio indipendente di questo e provato a vedere se funziona come vi aspettate? Inoltre, sei passato da una tecnica di caricamento del classpath a una tecnica basata su file system? In tal caso, assicurarsi che il percorso per log4j.properties sia corretto. –

risposta

7

configureAndWatch() file di orologi. Non risorse nel classpath.

+0

ya ho provato con quello .. ha funzionato correttamente .. Grazie –

1

Ho provato la soluzione e funziona perfettamente! Il punto è che devi fornire il percorso come un file non come una risorsa.

//Resource 
DOMConfigurator.configureAndWatch("/log4j.xml", 2000L); 

//File 
DOMConfigurator.configureAndWatch("./src/log4j.xml", 2000L); 

provare la seconda opzione e modificare il log4j.xml e provarlo!

Problemi correlati