博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pre过滤器——DebugFilter
阅读量:5356 次
发布时间:2019-06-15

本文共 1761 字,大约阅读时间需要 5 分钟。

DebugFilter

debug属于条件执行过滤器,属于配置型的过滤器,只有明确在配置中配置了相关参数时才会开启执行

1 public class DebugFilter extends ZuulFilter {
    /**这里是对应配置文件中的zuul.debug.request;默认值为false;可以配置为true,那时此过滤器就会被开启*/ 2 private static final DynamicBooleanProperty ROUTING_DEBUG = DynamicPropertyFactory.getInstance().getBooleanProperty("zuul.debug.request", false);     /**这时对应配置文件中的zuul.debug.parameter;这里设置的是请求中的参数名,       当请求中带上配置中设置的参数(例如debug),并且值为true时,会开启此过滤器*/ 3 private static final DynamicStringProperty DEBUG_PARAMETER = DynamicPropertyFactory.getInstance().getStringProperty("zuul.debug.parameter", "debug"); 4 5 public DebugFilter() { 6 } 7 8 public String filterType() { 9 return "pre";10 }11 12 public int filterOrder() {13 return 1;14 }15   /**这里根据配置文件或请求中的参数来判断是否执行此过滤器*/16 public boolean shouldFilter() {17 HttpServletRequest request = RequestContext.getCurrentContext().getRequest();18 return "true".equals(request.getParameter(DEBUG_PARAMETER.get())) ? true : ROUTING_DEBUG.get();19 }20   /**设置DebugRouting、DebugRequest为true*/21 public Object run() {22 RequestContext ctx = RequestContext.getCurrentContext();23 ctx.setDebugRouting(true);24 ctx.setDebugRequest(true);25 return null;26 }27 }

 

此过滤器开启方式:

方式一:在配置文件中配置zuul.debug.request:true;一旦设置,对所有请求都会开启此过滤器。

方式二:在配置文件中配置zuul.debug.parameter:debug;设置后,只有在请求中添加debug=true的请求才会开启此过滤器。是一种麻烦但灵活的方式。

 

此过滤器的作用:将当前请求上下文中的debugRoutingdebugRequest参数设置为true。

由于RequestContext对于一个请求的(生命周期)不同阶段都是不变的;所以可以利用这两个属性作为标记来进行一些debug信息记录,这样,当线上环境出问题的时候可以用来进行追踪。

实际用法:

if(ctx.debugRequest()||ctx.debugRouting()){

  //记录debug信息

}

当需要分析问题的时候开启debug过滤器,就可以记录debug日志了,当不需要的时候,可以关掉debug过滤器。

 

转载于:https://www.cnblogs.com/AWSL/p/10632169.html

你可能感兴趣的文章
【NOIP2017】奶酪
查看>>
$ 一步一步学Matlab(3)——Matlab中的数据类型
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
常用web字体的使用指南
查看>>
描绘应用程序级的信息
查看>>
poj2406-Power Strings
查看>>
2018/12/18 JS会像Linux一样改变编程
查看>>
php环境搭建脚本
查看>>
FTP主动模式与被动模式说明
查看>>
php 编译常见错误
查看>>
MES架构
查看>>
【Python3 爬虫】15_Fiddler抓包分析
查看>>
高性能JavaScript-JS脚本加载与执行对性能的影响
查看>>
关于标签之间因为换行等问题造成的空白间距问题处理
查看>>
hdu 2767(tarjan)
查看>>
sklearn之分类模型混淆矩阵和分类报告
查看>>
MySQL各存储引擎
查看>>
项目--简单导出CSV文件
查看>>
Oracle session相关数据字典(一)
查看>>