Ho la seguente configurazione log4j nei miei Grails 1.1 appnessuna uscita log4j in Grails app
log4j = {
// Enable Hibernate SQL logging with param values
trace 'org.hibernate.type'
debug 'org.hibernate.SQL'
debug 'com.mycompany'
appenders {
console name: 'stdout', layout: pattern(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n')
file name: 'hibeFile', file: 'hibe.log', layout: pattern(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n')
}
// By default, messages are logged at the error level to both the console and hibe.log
root {
error 'stdout', 'hibeFile'
additivity = true
}
}
Quando eseguo unit test, l'unica uscita di registrazione generato è dalle classi Hibernate. Non capisco perché non venga generato alcun output di registrazione per le mie classi, ad esempio per quelli con lo spazio dei nomi com.mycompany
. Stranamente, quando eseguo i test di integrazione, l'output log4j è come previsto.
Se vado al rapporto di prova per un test di unità, e fare clic sul link "System.out", vedo i miei messaggi di log nel seguente formato:
DEBUG (member.InviteServiceTests): Calling getInvite with member (4517)
Si noti che questo non è il lo stesso schema che ho specificato nella mia configurazione di log4j. Inoltre, se cambio la configurazione log4j da:
debug 'com.mycompany'
a:
fatal 'com.mycompany'
vedo ancora registrare i messaggi a livello di debug nel verbale di prova. Sembra che il root logger venga sovrascritto durante l'esecuzione dei test unitari? Ho provato le classi di registrazione sotto com.mycompany
utilizzando un registratore separato, ma questo non sembra fare alcuna differenza
Grazie, Don