2012-05-23 2 views
15

Я использую плагин Tomcat7 Maven:Настройка ведения журнала для вложенном Tomcat из 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> 

Я бегу мое приложение следующим образом (который работает встроенный кот)

МВН tomcat7: бег

ВОПРОС: Нет файла журнала catalina.out?

Я хочу включить регистрацию для Realms, чтобы я мог что-то отлаживать. В директории ./target/tomcat/log есть только access_log. * Никаких других файлов журналов.

Я пытался испортить файл ./target/tomcat/conf/logging.properties безрезультатно.

Как настроить регистрацию для этого Tomcat?

+0

Большой вопрос. Я считаю, что существует реальная ошибка, которая препятствует созданию журналов. Для меня единственным файлом журнала, который я попал в папку 'tomcat/logs', является' access.log'. Я не получаю другие журналы, такие как журнал «catalina.out» и т. Д. – djangofan

ответ

0

Попробуйте использовать

<tomcatLoggingFile>log.txt</tomcatLoggingFile> 

в разделе конфигурации.

+1

Здесь вы указываете альтернативные параметры logging.properties, а не имя файла журнала, который будет сгенерирован –

7

Я нашел решение, вам нужно описать дополнительные зависимости вашей библиотеки ведения журнала. В моем случае его logback, если вы используете log4j, просто изменяйте зависимости. Он работает ... ниже моя конфигурация:

 <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

Конфигурация протоколирования для встраиваемого Tomcat Maven в настоящее время не работает из-за ошибки

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

Для устранения этой проблемы просто перенаправить стандартный вывод, как:

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

Мое решение,

  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

Это лишь частичный ответ, но я получил его, как это, где мое приложение содержит свои собственные зависимости (не нужно объявлять дополнительные зависимости).

Единственное предостережение здесь в том, что я все еще не могу получить вывод Tomcat catalina.log, который мне нужен, когда в приложении есть ошибка нижнего уровня (до загрузки приложения и/или другого). С этой конфигурацией я получаю только файл журнала уровня приложения (а не logs/catalina.out, который я действительно хочу):

<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> 
Смежные вопросы