Configurer la journalisation pour un Tomcat intégré à partir du plugin Maven
j'utilise le plugin Tomcat7 Maven:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<configuration>
<update>true</update>
<contextFile>${basedir}/conf/context.xml</contextFile>
<tomcatUsers>${basedir}/conf/tomcat-users.xml</tomcatUsers>
</configuration>
</plugin>
j'exécute mon application comme suit (qui exécute tomcat embedded)
mvn tomcat7: run
le problème: il n'y a pas de catalina.log fichier?
je veux activer la journalisation pour les royaumes pour que je puisse déboguer quelque chose. Dans l' ./target/tomcat / log dir il n'y a que access_log.* aucun autre fichier journal.
j'ai essayé de jouer avec le ./cible/tomcat/conf/enregistrement.les propriétés de fichier en vain.
comment configurer la journalisation pour ce Tomcat?
5 réponses
j'ai trouvé la solution, vous devez décrire les dépendances de votre bibliothèque de journalisation. Dans mon cas sa logback, si vous utilisez log4j, changez les dépendances. Elle fonctionne... en dessous de ma config:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<path>/myapp</path>
<extraDependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.7</version>
</dependency>
</extraDependencies>
</configuration>
</plugin>
Essayez d'utiliser
<tomcatLoggingFile>log.txt</tomcatLoggingFile>
dans la section configuration.
la configuration de journalisation pour Tomcat Maven intégré est actuellement cassée en raison de bug
https://issues.apache.org/jira/browse/MTOMCAT-127
la solution est simplement de rediriger le stdout, comme:
mvn tomcat7:run 2>&1 | tee catalina.out
ma solution est,
String logBackfile ="....."; //the logback config
LoggerContext lc = new LoggerContext();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
lc.reset();
configurator.doConfigure(logBackfile);
StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
ce n'est qu'une réponse partielle, mais je l'ai fait fonctionner comme ceci, où mon application contient ses propres dépendances de logback (pas besoin de déclarer les extraDependencies).
la seule réserve ici est que je ne suis toujours pas en mesure d'obtenir le Tomcat catalina.journal de sortie dont j'ai besoin lorsqu'il y a une erreur de niveau plus bas dans mon application (avant que l'application ne charge et/ou autre). Avec cette configuration, Je n'obtiens que mon fichier log au niveau de l'application (pas le log/catalina.que j'ai vraiment voulez):
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version><!-- Tomcat 7.0.47 -->
<configuration>
<port>9090</port>
<path>/${project.artifactId}</path>
<systemProperties>
<spring.profiles.active>webService</spring.profiles.active>
<java.util.logging.config.file>src/integration-test/resources/logback.xml</java.util.logging.config.file>
</systemProperties>
</configuration>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>run-war-only</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<fork>true</fork>
</configuration>
</execution>
<execution>
<id>tomcat-shutdown</id>
<goals>
<goal>shutdown</goal>
</goals>
<phase>post-integration-test</phase>
</execution>
</executions>
</plugin>