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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Don,
Wenn die Klassen, die Sie versuchen, zu melden sind, sind standard-Grails-Klassen (domain, controller, service, usw.), Sie sollten in der Lage sein, etwas zu verwenden, wie:
Ist es etwas mehr Beschreibung zu den Grails-Benutzerhandbuch Abschnitt Protokollierung.
InformationsquelleAutor jkl
Seit grails-logging-delegates für log4j, können Sie
-Dlog4j.debug
und sehen, wie log4j konfiguriert ist (Referenz). Vielleicht eine andere Datei ausgewählt wird.Gibt es mindestens eine kritische bug-fix für die Protokollierung, die ausgerichtet ist auf 1.2, aber nicht am 1.1.x. Die Konfiguration ist ähnlich zu verkaufen. Vielleicht die Nachrichten werden falsch protokolliert, in eine andere Datei?
InformationsquelleAutor Robert Munteanu
Müssen Sie injizieren, einen logger in der Steuerung in einem Gerät-test:
Das zweite argument sagt protokollieren von debug-Meldungen und unten.
InformationsquelleAutor Jon Burgess
Don,
Ich noch nicht ganz geknackt, die Feinheiten der Protokollierung DSL in 1.1, aber das könnte für Sie nützlich sein: Dynamische Logging-Plugin ermöglicht Ihnen das aktivieren /deaktivieren der Protokollierung Kanälen, während sich Ihre app befindet, und erzeugt auch einige config, die kann man dann in die Conf.groovig.
Hoffe, das hilft.
InformationsquelleAutor Jean Barmash