2012-05-23 20 views
15

używam pluginu Tomcat7 Maven:Konfigurowanie rejestrowania za pomocą wbudowanego serwera Tomcat z Maven plugin

<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> 

uruchomię moją aplikację w następujący sposób (która biegnie Tomcat Embedded)

mvn tomcat7: Run

THE ISSUE: Nie ma pliku dziennika catalina.out?

Chcę włączyć rejestrowanie w domenach, aby móc debugować coś. W katalogu ./target/tomcat/log istnieje tylko access_log. * Brak innych plików dziennika.

Próbowałem zepsuć plik ./target/tomcat/conf/logging.properties bezskutecznie.

Jak skonfigurować rejestrowanie dla tego Tomcat?

+0

Świetne pytanie. Wierzę, że istnieje prawdziwy błąd, który uniemożliwia tworzenie dzienników. Dla mnie jedynym plikiem dziennika, który otrzymuję w folderze 'tomcat/logs' jest' access.log'. Nie dostaję innych dzienników, takich jak dziennik 'catalina.out' itp. – djangofan

Odpowiedz

0

Spróbuj użyć

<tomcatLoggingFile>log.txt</tomcatLoggingFile> 

w sekcji konfiguracji.

+1

to jest miejsce, w którym określasz alternatywną właściwość logging.properties, a nie nazwę pliku dziennika, który ma zostać wygenerowany. –

7

Znalazłem rozwiązanie, musisz opisać dodatkowe zależności swojej biblioteki logowania. W moim przypadku jego logback, jeśli używasz log4j, po prostu zmieniaj zależności. To działa ... poniżej mój 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> 
0

Moje rozwiązanie jest

  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

To tylko częściowa odpowiedź, ale mam to działa tak, jak moja aplikacja zawiera własne zależności logback (bez potrzeby deklarowania dodatkowych zależności).

Jedynym zastrzeżeniem jest to, że nadal nie jestem w stanie uzyskać danych wyjściowych tomcat catalina.log, które są mi potrzebne, gdy wystąpi błąd niższego poziomu w mojej aplikacji (przed załadowaniem aplikacji i/lub innym). Dzięki tej konfiguracji otrzymuję tylko plik dziennika poziomu aplikacji (nie logów/catalina.out, które naprawdę chcę):

<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> 
Powiązane problemy