如何在Spring Boot(Tomcat)中抑制/添加访问日志的条件

时间:2019-02-01 02:42:31

标签: java spring spring-boot tomcat

我在Spring Boot应用程序中的属性文件server.tomcat.accesslog.enabled=true上启用了访问日志,但问题是现在我的访问日志文件被运行状况检查端点(由Spring执行器提供)轰炸了。

是否可以启用访问日志但过滤掉运行状况检查?

1 个答案:

答案 0 :(得分:0)

最后找到了一种方法。

您需要为application.properties添加过滤器和道具:

AccessLogFilter.java

@WebFilter(urlPatterns = "/actuator/health")
public class AccessLogFilter implements Filter {

    @Value("${server.tomcat.accesslog.condition-unless}")
    private String conditionUnless;

    @Override
    public void doFilter(
            ServletRequest request,
            ServletResponse response,
            FilterChain chain)
            throws IOException, ServletException

    {
        request.setAttribute(conditionUnless, "NO_LOG");
        chain.doFilter(request, response);
    }
}

application.properties

server.tomcat.accesslog.condition-unless=accessLog

在主SpringApplication类中添加@ServletComponentScan注释,以使@WebFilter正常工作。

@SpringBootApplication
@ServletComponentScan
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}