Настройка ведения журнала для встроенного Tomcat из плагина Maven

Я использую плагин 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> 

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

mvn tomcat7: запустить

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

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

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

Как я могу настроить ведение журнала для этого Tomcat?

Ответы

Ответ 1

Я нашел решение, вам нужно описать дополнительные зависимости вашей библиотеки протоколирования. В моем случае 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>

Ответ 2

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

    <tomcatLoggingFile>log.txt</tomcatLoggingFile>

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

Ответ 3

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

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

Обходной путь состоит в том, чтобы просто перенаправить stdout, например:

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

Ответ 4

Мое решение:

            String logBackfile  ="....."; //the logback config
            LoggerContext lc = new LoggerContext();

            JoranConfigurator configurator = new JoranConfigurator();  
            configurator.setContext(lc);  
            lc.reset();  
            configurator.doConfigure(logBackfile);
            StatusPrinter.printInCaseOfErrorsOrWarnings(lc);  

Ответ 5

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

Единственное предостережение здесь в том, что я все еще не могу получить вывод 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>