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?

16
demandé sur thejartender 2012-05-24 00:32:47

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>
8
répondu Serhii Bohutskyi 2013-12-09 16:59:43

Essayez d'utiliser

    <tomcatLoggingFile>log.txt</tomcatLoggingFile>

dans la section configuration.

0
répondu Amol Ghotankar 2013-10-21 19:04:58

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
0
répondu Victor Lyuboslavsky 2014-12-31 16:41:27

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);  
0
répondu Stony 2015-01-05 09:24:37

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>
0
répondu djangofan 2015-12-31 20:20:04