2016-05-25 6 views
0

私は、Tomcatが埋め込まれたスプリングブートを使用しています。私は現在アクセスログを次のように設定しています(application.propertiesファイル内)。春の起動時にembedded TomcatでconditionUnlessを設定するにはどうしたらいいですか?

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 

これは問題なく動作します。今、私は条件なし抽象アクセスログ値のプロパティを使用しますが、ただ入れてserver.tomcat.accesslog.conditionUnlessは機能しません。

どうすれば設定できますか?これをコードで行うこともうまくいきますが、それを行うにはどうすればよいのか分かりません。または、バルブを構成する別の方法を使用する必要がありますか?

答えて

0

春のブートコードを見ると、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ファイルを使用するのではなく、コードで私自身の初期化でこのバルブを交換する必要があると思います。

関連する問題