keine log4j-Ausgabe in Grails-app

Habe ich folgende log4j config in meine Grails-app 1.1

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, die nur die logging-Ausgabe, die erzeugt wird, ist aus der Hibernate-Klassen. Ich verstehe nicht, warum keine logging-Ausgabe wird generiert, für meine eigenen Klassen, d.h. diejenigen, die unter der com.mycompany namespace. Seltsam, wenn ich run-integration-tests, die log4j Ausgabe ist wie erwartet.

Wenn ich gehen, um den test-Bericht für einen unit-test, und klicken Sie auf die "System.aus" link, ich sehe meine log-Meldungen im folgenden format:

DEBUG (member.InviteServiceTests): Calling getInvite with member (4517)

Beachten Sie, dass dies nicht das gleiche Muster wie die, die ich angegeben habe in meiner log4j-Konfiguration. Außerdem, wenn ich ändern Sie die log4j config aus:

debug 'com.mycompany'

:

fatal 'com.mycompany'

Sehe ich immer noch die log-Meldungen in der debug-level in der test-Bericht. Es scheint, als ob die root-logger wird überschrieben beim ausführen von unit-tests? Ich habe versucht, die Protokollierung von Klassen unter com.mycompany mit einem separaten logger, aber das scheint nicht zu keinen Unterschied machen,

Dank,
Don

InformationsquelleAutor Dónal | 2009-06-02

Schreibe einen Kommentar