日常记录-dubbo接口日志打印

@Activate(group = Constants.PROVIDER)
@Slf4j
public class LogFilter implements Filter {

    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
        long before = System.currentTimeMillis();
        Result result = invoker.invoke(invocation);
        log(invoker, invocation, result, before);
        return result;
    }

    private void log(Invoker<?> invoker, Invocation invocation, Result result, long before) {
        String serviceClassName = invoker.getInterface().getName();
        String signature = serviceClassName + "." + invocation.getMethodName();
        Object[] args = invocation.getArguments();
        log(signature, args, result, System.currentTimeMillis() - before);
    }

    private void log(String signature, Object[] args, Result result, long take) {
        if (result.hasException()) {
            Throwable e = result.getException();
            log.error("service:{}, FAILED, take(ms):{}, args:{}, result:{}", signature, take, args, e.getMessage());
        } else {
            Object value = result.getValue();
            log.debug("service:{}, SUCCESS, take(ms):{}, args:{}, result:{}", signature, take, args, value);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值