springboot从2.1.3升级到2.3.5后控制台自动输出http请求日志RequestResponseBodyMethodProcessor

springboot从2.1.3升级到2.3.5后控制台自动输出http请求日志RequestResponseBodyMethodProcessor和RequestMappingHandlerMapping


推荐使用第二个方案简单 明了 方便 快捷


停止输出如下日志方案:

DEBUG org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor Read "application/json;charset=UTF-8" to [QueryData(pageNo=1, pageSize=10, sortField=, sortOrder=asc, params={Q_XM_S_EQ=llsydn, Q_SJH_S_EQ=135 (truncated)...]

方案一

第一步定义TurboFilter

public class MyTurboFilter extends TurboFilter {
@Override
public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable throwable) {
if (logger.getName().equals(“org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor”)) {
return FilterReply.DENY; //返回accept
}
return FilterReply.NEUTRAL;
}
}

关于logback自带过滤器

logback提供了两种过滤器:正则过滤器与turbo过滤器。

正则过滤器:正则过滤器继承于抽象类Filter,Filter本质上只包含以ILoggingEvent为入参的一个方法decide()。

基于Ternary Logic,过滤器以排序列表的形式组合在一起。系统按照这个顺序调用每个过滤器的decide(ILoggingEvent event)方法。decide方法返回结果是枚举类FilterReply(DENY, NEUTRAL, ACCEPT其中一个)。返回值为DENY时,日志事件直接丢弃这条日志,不会再传递给剩下的过滤器。返回值为NEUTRAL时,则传递给下面的过滤器。返回值为ACCEPT时,日志事件立即处理这条日志,跳过调用其它过滤器。

其中: FilterReply 含义如下在这里插入图片描述

第二步配置logback

logback的配置XML

<configuration>
    <!-- 自定义类的路径 -->
    <turboFilter class="**.MyTurboFilter" />
    ......
</configuration>

方案二 直接配置logback的配置XML

这是因为RequestResponseBodyMethodProcessor和RequestMappingHandlerMapping同属annotation包中

<configuration>
    <!-- 自定义类的路径 -->
    <logger name="org.springframework.web.servlet.mvc.method.annotation" leverl ="off" />
    ......
</configuration>

在比如说,想关闭自动注入的控制台打印信息,如下配置即可

    <logger name="org.springframework.boot.autoconfigure.logging"  level="off"></logger>


推荐使用第二个方案简单 明了 方便 快捷


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值