如何从Maven插件'tomcat7-maven-plugin'配置嵌入式Tomcat的日志记录

时间:2013-06-07 03:20:50

标签: tomcat logging configuration

我正在使用Maven 3.0.4和tomcat7-maven-plugin嵌入式Tomcat服务器。我想通过编辑pom.xml来生成服务器日志。但是,我无法在配置部分中使用“tomcatLoggingFile”属性获取任何日志。以下是我的配置:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <configuration>
        <tomcatLoggingFile>tomcat_server.log</tomcatLoggingFile>
    </configuration>
</plugin>

我查看了tomcat7-maven-plugin的官方文档:http://tomcat.apache.org/maven-plugin-2.1/tomcat7-maven-plugin/run-mojo.html 但仍然不知道为什么它不起作用。

另外,我查了这篇文章:Configuring Logging for an Embedded Tomcat from Maven plugin 并使用org.slf4j.LoggerFactory代替。在tomcat_server.log文件中找不到任何日志。

当我在pom.xml中切换回使用jboss-as-maven-plugin并运行mvn jboss-as:run时,可以在目标文件夹中成功生成server.log。

有什么建议吗?

4 个答案:

答案 0 :(得分:2)

文档说,tomcatLoggingFile引用“Tomcat日志记录配置的路径”,而不是日志文件本身。 此外,您应确保日志库位于类路径中。 见http://tomcat.apache.org/tomcat-7.0-doc/logging.html

答案 1 :(得分:2)

由于bug

,嵌入式Tomcat Maven的日志记录配置目前已被破坏

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

解决方法是简单地重定向标准输出,如:

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

答案 2 :(得分:0)

使用log4j或其他日志库,这里是一个棘手的部分....你应该在你的maven插件配置中添加额外的依赖项

      <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                ....
                <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>log4j</groupId>
                        <artifactId>log4j</artifactId>
                        <version>1.2.17</version>
                    </dependency>
                </extraDependencies>
            </configuration>
        </plugin>

答案 3 :(得分:0)

我刚刚在web.xml

中包含的xml配置中使用了log4j的文件appender