首页 文章

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

提问于
浏览
1

我使用嵌入式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

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

    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文件 .

相关问题