Qual è il modo migliore per configurare log4j per l'utilizzo in un ambiente di test dell'unità? Preferisco che i miei test unitari non avessero dipendenze esterne, quindi leggere il file di configurazione log4j non è un'opzione. Idealmente ci sarebbero 1 o 2 chiamate di funzione che potrei fare dall'interno della funzione di configurazione del test dell'unità.Come configurare log4j in un ambiente di test dell'unità?
risposta
si potrebbe mettere un blocco di codice statico nella parte superiore del test che fa
BasicConfigurator.configure();
Si noti che il problema di questo è che ogni volta che si esegue questa linea, log4j aggiungerà un appender e otterrete dichiarazioni di registro duplicate. Quindi se lo fai in ogni classe di test, finirai con n duplicati di ogni dichiarazione di registro.
Quindi ti consiglio di creare una classe che sia il tuo BaseTestCase e farlo lì.
nota, avere una sorta di test-risorse con la configurazione in questione non è una cattiva idea ...
Grazie. Gli appendici duplicati sono stati il mio problema con questo approccio. –
Un modo più semplice per non "finire con n duplicati di ogni istruzione di registro" è precedere la riga di codice sopra con: BasicConfigurator.resetConfiguration(); – urig
@urig: hai reso la mia giornata – boutta
Log4j è già una dipendenza esterna. Comunque, hai la tua risposta qui sotto (hvgotcodes), quindi aggiungo che puoi configurare log4j in modo programmatico. Fondamentalmente tutto si può fare tramite configurazione, si può fare per codice così:
http://robertmaldon.blogspot.com/2007/09/programmatically-configuring-log4j-and.html
- 1. Dove posso configurare log4j in una classe di test JUnit?
- 2. Registrazione per applicazione in ambiente diverso Log4j
- 3. Come configurare log4j con un file di proprietà
- 4. Come configurare log4j 1.2 usando xml
- 5. Log4j in JUnit Test case
- 6. È possibile configurare MongoDB in un ambiente di hosting condiviso?
- 7. Grails 3: test di integrazione vengono eseguiti in un ambiente di sviluppo, non in un ambiente di test
- 8. Come configurare log4j 2.x puramente a livello di programmazione?
- 9. Come configurare un ambiente Biztalk con più sviluppatori?
- 10. Come posso configurare la mia implementazione BlazeDS con Log4J?
- 11. Ambiente di test Bootstrap Twitter
- 12. Come configurare log4j per registrare solo messaggi info e superiori?
- 13. Come configurare quadro ambiente in una web app Tridion CWA
- 14. Come configurare Hibernate con la variabile di ambiente
- 15. Come configurare più log4j per diversi conflitti in un singolo EAR?
- 16. Cos'è un modo pratico di configurare un cluster Akka in un ambiente Docker multi-nodo?
- 17. Come configurare log4j.properties per SpringJUnit4ClassRunner?
- 18. Come configurare MongoDB per i test di integrazione in NodeJS?
- 19. Come configurare Teamcity per ignorare alcuni test
- 20. Come configurare un client Raven di Sentry in un ambiente di sviluppo per non inviare eccezioni e continuare a funzionare?
- 21. configurazione log4j in EAR
- 22. Come configurare il percorso del file di output log4j in web.xml e log4j.properties?
- 23. Come configurare l'appender nullo in log4j2
- 24. Come configurare log4j per registrare diversi livelli di registro in file diversi per lo stesso registratore
- 25. Come creare un ambiente personalizzato in Grails?
- 26. Come inviare java.util.logging a log4j?
- 27. Libro di test unitario consigliato per un ambiente MVC ASP.NET
- 28. Esiste un ambiente di test sql basato sul web?
- 29. Proprietà di Log4j in un luogo personalizzato
- 30. Come preparare un ambiente di riferimento costante
Avete pensato di utilizzare SLF4J che può essere meglio per il vostro caso d'uso penso. – OpenSource
La configurazione esterna di Log4J non è male, poiché uno sviluppatore può cambiarlo durante la ricerca dei bug. – xmedeko