我正在使用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 dir中只有access_log。*没有其他日志文件。
我已经尝试弄乱./target/tomcat/conf/logging.properties文件无济于事。
如何为此Tomcat配置日志记录?
答案 0 :(得分:8)
我找到了解决方案,您需要描述日志库的额外依赖关系。在我的情况下它是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>
答案 1 :(得分:0)
尝试使用
<tomcatLoggingFile>log.txt</tomcatLoggingFile>
在配置部分。
答案 2 :(得分:0)
由于bug
,嵌入式Tomcat Maven的日志记录配置目前已被破坏https://issues.apache.org/jira/browse/MTOMCAT-127
解决方法是简单地重定向标准输出,如:
mvn tomcat7:run 2>&1 | tee catalina.out
答案 3 :(得分: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);
答案 4 :(得分:0)
这只是一个部分答案,但我得到了这样的工作,我的应用程序包含自己的logback依赖项(不需要声明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>