对于我们的Spring Boot应用程序,我们使用logback + GELF将应用程序日志发送到我们的中央日志服务器,在此我们可以对其进行分析. Spring Boot的访问日志可以做同样的事情吗?
如果不是,是否还有其他建议或最佳实践来从中央服务器上的多个spring boot应用程序收集访问日志?
解决方法:
好的,我经过研究后才发现.您需要向tomcat添加自定义阀门:
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
TomcatEmbeddedServletContainerFactory factory
= new TomcatEmbeddedServletContainerFactory();
GelfAccessLogValve gelfAccessLogValve = new GelfAccessLogValve();
gelfAccessLogValve.setPattern("%h %m %U %I %l %u %t "%r" %s %b");
factory.addContextValves(gelfAccessLogValve);
return factory;
}
我编写的阀门基于paluch.biz’s valve,但不同之处在于它仅取决于Graylog的gelf客户端.因此,您需要将此依赖项添加到pom中:
org.graylog2
gelfclient
1.4.0
这是阀门代码:
public class GelfAccessLogValve extends Ac