2012-05-23 20 views
15

estoy usando el plugin de Maven Tomcat7:la configuración del registro para un Tomcat incorporado desde el plugin de 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> 

corro mi aplicación de la siguiente manera (que corre Tomcat incluido)

mvn tomcat7: plazo

EL PROBLEMA: ¿No hay ningún archivo de registro de catalina.out?

Quiero activar el registro de los Reinos para poder depurar algo. En el directorio ./target/tomcat/log solo hay access_log. * No hay otros archivos de registro.

He intentado jugar con el archivo ./target/tomcat/conf/logging.properties en vano.

¿Cómo puedo configurar el registro para este Tomcat?

+0

Gran pregunta. Creo que hay un error real que impide que se creen los registros. Para mí, el único archivo de registro que obtengo dentro de la carpeta 'tomcat/logs' es' access.log'. No obtengo los otros registros, como el registro 'catalina.out', etc. – djangofan

Respuesta

0

Try usando

<tomcatLoggingFile>log.txt</tomcatLoggingFile> 

en la sección de configuración.

+1

aquí es donde especificas un logging.properties alternativo, no el nombre del archivo de registro que se generará –

7

Encontré solución, necesita describir las dependencias adicionales de su biblioteca de registro. En mi caso es logback, si usas log4j simplemente cambias las dependencias. Funciona ... a mi 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

La configuración de registro para Embedded Tomcat Maven se divide actualmente debido a fallo

https://issues.apache.org/jira/browse/MTOMCAT-127

La solución es simplemente redirigir la salida estándar, como:

mvn tomcat7:run 2>&1 | tee catalina.out 
0

Mi solución es,

  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

Esto es solo una respuesta parcial, pero lo hice funcionar así, donde mi aplicación contiene sus propias dependencias de inicio de sesión (no es necesario declarar las dependencias adicionales).

La única advertencia aquí es que todavía no puedo obtener el resultado de catalina.log de Tomcat que necesito cuando hay un error de nivel inferior en mi aplicación (antes de que la aplicación se cargue y/u otra). Con esta configuración, solo obtengo mi archivo de registro de nivel de aplicación (no los registros/catalina.out que realmente deseo):

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