Ich bin ein Java Webapp mit einem einfachen mvn jetty:run
, mit dem neuesten Jetty-Plugin, aber ich kann nicht scheinen, eine Methode zu finden Anlegestelle DEBUG Nachrichten an die Konsole (für die eingebettete Jetty-Instanz, nicht das Plugin selbst). Derzeit werden nur WARN- und INFO-Nachrichten ausgegeben. Ich habe versucht, -DDEBUG
und -DVERBOSE
Einstellung, aber sie tun nichts. Ich habe mir schon die documentation angesehen, aber das scheint das nicht zu bedecken.Aktivieren Sie Debug Logging in Maven Jetty 7 Plugin
Antwort
Update: OK, ich habe endlich die Dinge funktioniert und hier ist, was ich getan habe.
Mein Verständnis ist, dass Jetty 7 keine Abhängigkeiten zu einem bestimmten Logging-Framework hat, auch nicht für die JSP-Engine, da Jetty 7 die JSP 2.1-Engine verwendet. Sie können also jedes Logging-Framework verwenden. Hier werde ich Logback verwenden.
Erste logback-classic
als Abhängigkeit im Plugin hinzufügen und die logback.configurationFile
Systemeigenschaft auf eine Konfigurationsdatei verweisen auf:
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<configuration>
<systemProperties>
<systemProperty>
<name>logback.configurationFile</name>
<value>./src/etc/logback.xml</value>
</systemProperty>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.15</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
...
</project>
Dann eine src/etc/logback.xml
Konfigurationsdatei hinzufügen.Unterhalb einer Minimalkonfiguration:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<root level="debug">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
Mit dieser Einrichtung Anlegestelle ausgibt DEBUG Meldungen:
$ mvn jetty:run ... 00:31:33.089 [main] DEBUG org.mortbay.log - starting [email protected] 00:31:33.089 [main] DEBUG org.mortbay.log - started [email protected] 00:31:33.105 [main] DEBUG org.mortbay.log - starting [email protected] 00:31:33.106 [main] DEBUG org.mortbay.log - started [email protected] 00:31:33.106 [main] DEBUG org.mortbay.log - starting [email protected] 00:31:33.106 [main] DEBUG org.mortbay.log - started [email protected] 00:31:33.106 [main] DEBUG org.mortbay.log - starting [email protected] 00:31:33.174 [main] DEBUG org.mortbay.log - started [email protected] 00:31:33.216 [main] INFO org.mortbay.log - Started [email protected]:8080 00:31:33.217 [main] DEBUG org.mortbay.log - started [email protected]:8080 00:31:33.217 [main] DEBUG org.mortbay.log - started [email protected] [INFO] Started Jetty Server
Ressourcen:
- Die Maven Jetty Plugin Seite
- Die [m2] jetty6 plugin & log4j Nachricht/Thread
- Die Chapter 3: Logback configuration aus der Logback Dokumentation
Pascal Antwort zu erweitern, das ist, wie es mit log4j funktioniert:
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<configuration>
<systemProperties>
<systemProperty>
<name>log4j.configurationFile</name>
<value>file:${project.basedir}/src/test/resources/log4j.properties</value>
</systemProperty>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
...
</project>
Das ist Ihre ${project.basedir}/src/test/resources/log4j.properties
:
log4j.rootLogger=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%-5p] %c: %m\n
log4j.logger.org.eclipse.jetty.util.log=INFO
Zusätzliche Ressourcen:
Die System-Eigenschaft log4j.configurationFile funktioniert nicht für mich, aber log4j.configuration. –
Für log4j 1.2.16 Maven 3 Ich hatte für '
Sie können auch diese "mvn -X Anlegesteg: run" do
ich diese Lösung finden bequemer
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<targetPath>${project.build.outputDirectory}</targetPath>
<includes>
<include>log4j.properties</include>
</includes>
</resource>
</resources>
auch nicht vergessen, fügen
<overwrite>true</overwrite>
für Ressourcen Stecker in
Um Pascals und yegor256 Antwort zu erweitern, ist dies, wie es mit SLF4J Simple logger
arbeitet (was die einfachste Option ist, da Sie nur eine Abhängigkeit slf4j-simple
hinzufügen müssen):
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
</build>
...
</project>
Es ist möglich, konfigurieren der SLF4J Logger direkt von Maven pom. Standardwerte werden in http://www.slf4j.org/apidocs/org/slf4j/impl/SimpleLogger.html beschrieben)
So melden Sie sich in eine Datei /tmp/output.log
mit höheren Debug-Level (TRACE
):
<configuration>
<systemProperties>
<systemProperty>
<name>org.slf4j.simpleLogger.logFile</name>
<value>/tmp/output.log</value>
</systemProperty>
<systemProperty>
<name>org.slf4j.simpleLogger.defaultLogLevel</name>
<value>trace</value>
</systemProperty>
</systemProperties>
</configuration>
Danke, Pascal. Ich habe nur die erste Version Ihrer Antwort gesehen, deshalb brauchte ich eine Weile, um sie zu akzeptieren. Ich weiß nicht mehr, wofür ich das machen wollte, aber ich werde mich sicher darauf beziehen, wenn es jemals wieder auftaucht. – wds