2011-10-01 53 views
7

我正在運行mvn tomcat:run-war目標,並獲取具有日誌目錄的目錄結構。但是,唉,沒有日誌。我只是用log4j日誌來代替它,但是由於各種原因,這已經證明很困難。不能讓tomcat-maven-plugin創建一個日誌文件?

我已經嘗試明確設置日誌文件配置。我的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> 

我在啓動期間看到該屬性正在被讀取。我的屬性文件在下面;我傾倒東西到/ 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 

如果有人有任何想法,我會很感激。

回答

2

我剛剛經歷了類似的過程,並非完全成功......

首先要注意的事情是,你必須清楚,如果你想更改日誌配置爲Web應用程序,或對於Tomcat本身。對於一些細節見logging documentation on the Tomcat website - 特別是:

這意味着,記錄可以在以下層來配置:

  • 全局。這通常在$ {catalina.base} /conf/logging.properties文件中完成。該文件由啓動腳本設置的java.util.logging.config.file系統屬性指定。如果它不可讀或未配置,則默認使用JRE中的$ {java.home} /lib/logging.properties文件。
  • 在Web應用程序中。該文件將WEB-INF /班/ logging.properties

這樣做之後,我能夠重新配置我的應用程序的日誌,在部署到一個獨立的Tomcat服務器。然而,我無法得到這個與Maven Tomcat插件一起工作 - 然後我發現有人提交了bug MTOMCAT-127,在撰寫本文時,這個插件尚未解決,並且似乎描述了我所看到的內容。

所以不是完全成功 - 但我希望我可以回來並更新這個答案,一旦MTOMCAT-127問題已經發展...