我使用嵌入式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 不起作用。
我该如何设置?在代码中执行此操作也很好,但我不知道如何最好地执行此操作。或者我应该使用不同的配置阀门的方法吗?
答案 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文件。