SpringBoot 心跳日志不记录 access.log
增加Filter
LoggingSkipFilter.java
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Component // 让 Spring 自动扫描并注册
@Order(Ordered.HIGHEST_PRECEDENCE) // 最高优先级 希望这个判断尽早执行,以免被其他 Filter 影响
public class LoggingSkipFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
String uri = httpRequest.getRequestURI();
// 👇 在这里定义你想排除的 URL(可自行扩展为列表或正则)
if (uri.equals("/") ||
uri.equals("/health") ||
uri.startsWith("/actuator/health") ||
uri.endsWith(".js") ||
uri.endsWith(".css") ||
uri.endsWith(".png")) {
// 设置一个标记属性,属性名与后面 yml 配置的 condition-unless 一致
request.setAttribute("skipLogging", "true");
}
}
chain.doFilter(request, response);
}
}
修改配置
application.yml
增加:condition-unless: skipLogging 配置
server:
port: 50021
tomcat:
basedir: ./logs
background-processor-delay: 30
redirect-context-root: true
uri-encoding: UTF-8
accesslog:
enabled: true #为true时,上面的日期格式才有意义,否则就是写在一个文件里了
buffered: true
condition-unless: skipLogging
directory: ./logs
file-date-format: .yyyy-MM-dd
#pattern: '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %D ms'
pattern: '%t %a %m %U %s %b %D ms'
prefix: access_log
rename-on-rotate: false
request-attributes-enabled: false
rotate: true
suffix: .log
本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/22884572
浙公网安备 33010602011771号