Mam następujące config log4j w moim Grails 1.1 appma wyjścia log4j w 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
}
}
Kiedy uruchomić testy jednostkowe, jedyne wyjście rejestrowania generowana jest z klas hibernacji. Nie rozumiem, dlaczego nie generuje się żadnych wyników rejestrowania dla moich własnych klas, tj. Tych w przestrzeni nazw com.mycompany
. O dziwo, kiedy uruchamiam testy integracji, dane wyjściowe log4j są zgodne z oczekiwaniami.
Jeśli pójdę do testu dla testów jednostkowych, a następnie kliknąć na „System.out” link, widzę moje wiadomości dziennika w następującym formacie:
DEBUG (member.InviteServiceTests): Calling getInvite with member (4517)
Zauważ, że nie jest to taki sam wzór, jaki określiłem w mojej konfiguracji log4j. Ponadto, jeśli mogę zmienić config log4j od:
debug 'com.mycompany'
do:
fatal 'com.mycompany'
wciąż widzę komunikaty dziennika na poziomie debugowania w sprawozdaniu z badań. Wygląda na to, że główny program rejestrujący jest nadpisywany podczas uruchamiania testów jednostkowych? Próbowałem klasy rejestrowania pod com.mycompany
pomocą oddzielnego rejestratora, ale to nie wydaje się, aby jakakolwiek różnica
Dzięki, Don