无法让tomcat-maven-plugin创建日志文件?

jin*_*one 8 logging tomcat maven-2

我正在运行mvn tomcat:run-war目标,并获得一个具有logs目录的目录结构.但是,唉,没有日志.我只想用log4j日志记录替换它,但由于各种原因,这已经证明是困难的.

我已经尝试显式设置日志文件配置.我的pom.xml定义目前看起来像:

 <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                <port>8084</port>
                <systemProperties>
                     <java.util.logging.config.file>${basedir}/src/main/webapp/WEB-INF/logging.properties</java.util.logging.config.file>
                </systemProperties>
            </configuration>
            <version>1.1</version>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

我在启动时看到正在阅读该属性.我的属性文件如下; 我把东西倾倒到/ tmp只是为了确保我知道在哪里看.

handlers = 1catalina.org.apache.juli.FileHandler, \
           2localhost.org.apache.juli.FileHandler, \
           3manager.org.apache.juli.FileHandler, \
           java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################    

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = /tmp/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = /tmp/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = /tmp/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
3manager.org.apache.juli.FileHandler.bufferSize = 16384

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
   2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \
   3manager.org.apache.juli.FileHandler
Run Code Online (Sandbox Code Playgroud)

如果有人有任何想法,我将非常感激.

Ric*_*ner 3

我刚刚经历了类似的过程,但并不完全成功......

首先要注意的是,您需要明确是否要更改 Web 应用程序或 Tomcat 本身的日志记录配置。有关一些详细信息,请参阅Tomcat 网站上的日志记录文档- 特别是:

这意味着可以在以下层配置日志记录:

  • 全球范围内。这通常在 ${catalina.base}/conf/logging.properties 文件中完成。该文件由 java.util.logging.config.file 系统属性指定,该属性由启动脚本设置。如果不可读或未配置,则默认使用JRE中的${java.home}/lib/logging.properties文件。
  • 在网络应用程序中。该文件将为 WEB-INF/classes/logging.properties

完成此操作后,当部署到独立的 Tomcat 服务器时,我可以重新配置应用程序的日志记录。然而,我无法让它与 Maven Tomcat 插件一起工作 - 然后我发现有人提交了错误 MTOMCAT-127,该错误在撰写本文时尚未解决,并且似乎描述了我所看到的内容。

所以并不完全成功 - 但我希望一旦 MTOMCAT-127 问题取得进展,我可以回来更新这个答案......