dubbo filter记录接口参数日志

实现效果:
dubbo的provider和consumer接口调用的入参和出参都会打印日志。
dubbo配置

	<dubbo:consumer check="false" filter="dubboConsumerLogFilter"></dubbo:consumer>
	<dubbo:provider filter="dubboProducerLogFilter"/>
	```
创建文件
/src/main/resources/META-INF/dubbo/com.alibaba.dubbo.rpc.Filter
文件内容
dubboConsumerLogFilter=com.xxx.DubboLogFilter
dubboProducerLogFilter=com.xxx.DubboLogFilter

	filter类

public class DubboLogFilter implements Filter {
private Logger logger = LoggerFactory.getLogger(this.getClass());

@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
	String name = invoker.getInterface().getName();
	Object[] args = invocation.getArguments();
	String method = invocation.getMethodName();
	String prefix = "日志:"+name+"."+method;
	logger.info(prefix+" 入参=>"+JSONArray.toJSONString(args));
	Result r = invoker.invoke(invocation);
	if(r.hasException()){
		Throwable e = r.getException();
		if(e.getClass().getName().equals("java.lang.RuntimeException")){
			logger.error(prefix+" 运行时异常=>"+JSONObject.toJSONString(r));
		}else{
			logger.error(prefix+" 异常=>"+JSONObject.toJSONString(r));
		}
	}else{
		logger.info(prefix+" 结果=>"+JSONObject.toJSONString(r));
	}
	return r;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值