2017-04-27 65 views
0

我正在開發一個項目並使用Spring Boot 1.3.5.RELEASE。Spring Boot 1.3.5 Tomcat訪問日誌旋轉

我已經根據tomcat文檔啓用了Tomcat訪問日誌並禁用了輪換,但是訪問日誌仍然以日期爲後綴並且正​​在旋轉。如果有辦法禁用tomcat訪問日誌的輪換?

server : 
    port : 80 
    tomcat : 
    accesslog : 
     enabled : true 
     pattern : common 
     directory : /logs/ 
     prefix : access 
     suffix : .log 
     rotatable : false 

回答

0

我能夠通過在代碼中手動設置訪問日誌配置來解決它。似乎旋轉屬性的setter不暴露在SpringBoot 1.3.5中

import org.apache.catalina.valves.AccessLogValve; 
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; 
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; 
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 
import org.springframework.context.annotation.Configuration; 

@Configuration 
public class Application implements EmbeddedServletContainerCustomizer { 

    @Override 
    public void customize(ConfigurableEmbeddedServletContainer container) { 
     if (container instanceof TomcatEmbeddedServletContainerFactory) { 
      TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory) container; 
      AccessLogValve accessLogValve = new AccessLogValve(); 
      accessLogValve.setEnabled(true); 
      accessLogValve.setPattern("common"); 
      accessLogValve.setDirectory("/log/"); 
      accessLogValve.setPrefix("access"); 
      accessLogValve.setSuffix(".log"); 
      accessLogValve.setRotatable(false); 
      factory.addContextValves(accessLogValve); 
     } 
    } 
}