如何在spring boot中的嵌入式tomcat中配置conditionUnless?

时间:2016-05-25 15:12:27

标签: spring tomcat spring-boot

我使用嵌入式tomcat的spring boot。我目前正在配置访问日志,如下所示(在我的application.properties文件中):

server.tomcat.accesslog.directory=log
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%t INFO "some pattern..."
server.tomcat.accesslog.prefix=tomcat
server.tomcat.accesslog.suffix=.log

工作正常。现在,我想使用AbstractAccessLogValve的 conditionUnless 属性,但只是放 server.tomcat.accesslog.conditionUnless 不起作用。

我该如何设置?在代码中执行此操作也很好,但我不知道如何最好地执行此操作。或者我应该使用不同的配置阀门的方法吗?

1 个答案:

答案 0 :(得分:0)

好吧,看看Spring启动代码,可以看出AccessLogValve的定制如下(在spring-boot-autoconfigure / src / main / java / org / springframework / boot / autoconfigure / web / ServerProperties.java中): / p>

 831     private void customizeAccessLog(TomcatEmbeddedServletContainerFactory factory) {
 832       AccessLogValve valve = new AccessLogValve();
 833       valve.setPattern(this.accesslog.getPattern());
 834       valve.setDirectory(this.accesslog.getDirectory());
 835       valve.setPrefix(this.accesslog.getPrefix());
 836       valve.setSuffix(this.accesslog.getSuffix());
 837       factory.addContextValves(valve);
 838     }

因此,不支持conditionUnless。我想我只需要在我自己的代码初始化中替换这个阀门,而不是使用application.properties文件。