ich folgende log4j config in meinem Grails 1.1 app habenkeine log4j Ausgabe 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
}
}
Wenn ich Unit-Tests laufen, die nur aus den Hibernate-Klassen erzeugt Protokollierung ausgegeben wird. Ich verstehe nicht, warum für meine eigenen Klassen, d. H. Diejenigen unter dem com.mycompany
Namensraum, keine Protokollierungsausgabe erzeugt wird. Seltsamerweise, wenn ich Integrationstests ausführe, ist die log4j-Ausgabe wie erwartet.
Wenn ich für einen Komponententest zum Testbericht gehen, und klicken Sie auf „System.out“ -Link, sehe ich meine Log-Meldungen in folgendem Format:
DEBUG (member.InviteServiceTests): Calling getInvite with member (4517)
Beachten Sie, dass dies nicht der ist das gleiche Muster wie das, das ich in meiner log4j-Konfiguration angegeben habe. Außerdem, wenn ich die log4j config ändern:
debug 'com.mycompany'
zu:
fatal 'com.mycompany'
ich log sehe immer noch Meldungen an der Debug-Level im Prüfbericht. Es scheint, als ob der Root-Logger beim Ausführen von Komponententests überschrieben wird. Ich habe versucht, Klassen-Protokollierung unter com.mycompany
einen separaten Logger verwenden, aber das scheint keinen Unterschied
Danke, Don