dubbo 如何使用logback来输出日志

dubbo logback输出日志

两者皆为国内使用比较广的两个开源框架:一个是服务治理框架,另一个则是日志框架。这个问题的解决方案一部分就在dubbo官网上:

dubbo的日志适配

缺省自动查找:

  • log4j
  • slf4j
  • jcl
  • jdk

可以通过以下方式配置日志输出策略:

java -Ddubbo.application.logger=log4j

dubbo.properties

dubbo.application.logger=log4j

dubbo.xml

<dubbo:application logger="log4j"/> //我采用的这种配置方式

而logback与slf4j天然融合,我们只需要在logback.xml增加下面的配置即可控制dubbo框架的日志输出:

<logger name="com.alibaba.dubbo" level="DEBUG"/> --这是logback的配置方式,如有问题可参考logback官网。

输出dubbo信息日志

输出dubbo信息日志

第一步

import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.rpc.*;

@Slf4j
public class DubboServiceLogFilter implements Filter {

    @Override
    public Result invoke(Invoker< ? > invoker, Invocation invocation) throws RpcException {
        Long startTime = System.currentTimeMillis();
        Result result = invoker.invoke(invocation);
        Long endTime = System.currentTimeMillis();
        Long times = endTime - startTime;
        Object[] arguments = invocation.getArguments();

        log.info("远程调用dubbo服务名称:{}, 执行时间:{} ms, 调用dubbo方法:{},请求参数:{}, 返回值:{}",
                invoker.getInterface().getName(), times, invocation.getMethodName(), arguments, result.getValue());
        return result;
    }
}

第二步

在resource下面创建一个文件org.apache.dubbo.rpc.Filter,里面内容为过滤器的那个类的路径

在需要使用的dubbo服务上加以下注解:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈SpringBoot是如何实现日志的

    前言 休息日闲着无聊看了下 SpringBoot 中的日志实现,把我的理解跟大家说下. 门面模式 说到日志框架不得不说门面模式.门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用.用一张图来表示门面模式的结构为: 简单来说,该模式就是把一些复杂的流程封装成一个接口供给外部用户更简单的使用.这个模式中,设计到3个角色. 1).门面角色:外观模式的核心.它被客户角色调用,它熟悉子系统的功能.内部根据客户角色的需求预定了几种功能的组合(模块). 2).子系统(

  • SpringBoot实用小技巧之如何动态设置日志级别

    前言 有时线上问题我们用打日志的方式来观察错误或埋点参数,但由于这些日志如果都打出来会占用大量存储空间而且覆盖了一些有效信息,所以线上级别一般设置INFO,调试级别用作特殊情况下.此时如果线上想查看调试级别下的日志,又不能更改日志级别后重新发布该怎么办? Spring Boot提供了日志级别动态配置功能,为我们的线上应用调试提供了很好的机制.在实际使用中需要结合Spring-Security提供的安全机制来保护Actuator 提供的各种系统级端点的安全访问. SpringBoot从版本 1.5

  • Spring Boot 使用 logback、logstash、ELK 记录日志文件的方法

    Spring Boot 下,尝试使用 log4j 记录日志到 logstash,在src/main/resources 目录下添加 log4j.properties 文件进行自定义输出日志文件,未能成功.在 application.yml 中 配置 logging path 打印日志成功了,但是未能调试成功日志分文件记录.网上查阅资料,说是 Spring Boot 默认使用 logback 记录日志.log4j 多次尝试后无果,遂改为使用 logback 记录,最终测试成功. 1. 关于 Spr

  • springboot 配置日志 打印不出来sql的解决方法

    今天整合springboot2 + mybatis + logback 遇到了在日志中sql打印不出来的坑,在网上找了好久,都不是我遇到的问题,这里吐槽一下下现在的博客质量,好多都是抄袭的,也没有标注转载. 先说下要将sql打印到日志的配置 1.在mybatis.xml配置中增加以下配置 <!--指定 MyBatis 增加到日志名称的前缀.--> <setting name="logPrefix" value="m-shop-mybatis-sql.&quo

  • dubbo 如何使用logback来输出日志

    dubbo logback输出日志 两者皆为国内使用比较广的两个开源框架:一个是服务治理框架,另一个则是日志框架.这个问题的解决方案一部分就在dubbo官网上: dubbo的日志适配 缺省自动查找: log4j slf4j jcl jdk 可以通过以下方式配置日志输出策略: java -Ddubbo.application.logger=log4j dubbo.properties dubbo.application.logger=log4j dubbo.xml <dubbo:applicati

  • logback过滤部分日志输出的操作

    目录 logback过滤部分日志输出 场景 日志过滤 Logback 自定义灵活的日志过滤规则 下面是一个只记录日志级别为ERROR的例子 下面举一个简单的例子 logback过滤部分日志输出 场景 使用监控异常日志进行告警时,部分异常日志可能只是不需要告警,但无法通过编码去除时,可以通过不输出这类异常日志达到忽略告警的目的. 比如在系统中经常会出现断开的管道的相关问题,异常如下 org.apache.catalina.connector.ClientAbortException: java.i

  • logback输出日志屏蔽quartz的debug等级日志方式

    目录 logback输出日志屏蔽quartz的debug等级日志 解决方法 quartz关闭DBUG日志 把他的log级别改成 ERROR 或者索性 logback输出日志屏蔽quartz的debug等级日志 在一个spring的老项目中,使用了logback来作为日志管理,logback.xml中已经设定日志输出等级为INFO,但是quartz的日志还是debug级别在输出,导致日志内容很多很乱 解决方法 在标签内加上,如: <configuration debug="false&quo

  • logback自定义json日志输出示例详解

    目录 前言 依赖的jar maven坐标 配置Appender节点 appender配置说明: 配置logger节点 logger配置说明: 前言 先说下楼主的使用场景吧,将程序的某些方法调用以json格式的内容记录到文件中,提供给大数据做数据分析用.当然这个需求实现起来很简单,通过aop拦截切面统一输出内容到文件即可.下面要介绍的就是通过logback日志体系以及logstash提供的json log依赖将数据以json格式记录到日志文件的例子. 依赖的jar logstash-logback

  • springboot logback调整mybatis日志级别无效的解决

    现象 在日志配置文件 logback-spring.xml 中,无论怎么修改级别,mybatis 的 sql 日志都会打印出来. 原因 在 application.yml 中配置了 mybatis 的自定义日志类,如下: mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 点进去查看源码,发现 debug 日志级别始终为 true,所以怎么配置都不生效 public boolean isDeb

  • maven如何使用slf4j输出日志到文件

    目录 使用slf4j输出日志到文件 log4j.properties slf4j将部分日志打印在其他文件中 logback.xml配置中新增一个FileAppender 在需要额外打印日志的地方 使用slf4j输出日志到文件 log4j.properties ### set log levels ### log4j.rootLogger=debug, stdout, D, E #ConsoleAppender,控制台输出 #FileAppender,文件日志输出 #SMTPAppender,发邮

  • Spring如何按业务模块输出日志到不同的文件详解

    目录 一.背景 二.需求 三.技术实现 四.代码实现 1.编写xml日志文件 2.编写QQ模块的代码 3.编写login模块的代码 五.运行结果 六.完整代码 七.一个小知识点 总结 一.背景 在我们开发的过程中,可能存在如下情况: 1.有些时候我们需要调用第三方的接口,一般情况下,调用接口,我们都会记录请求的入参和响应的.如果我们自己系统的日志和第三方的日志混合到一个日志文件中,那么可能查找日志就比较麻烦了.那么我们是否可以将第三方系统的日志单独放到另外的文件中呢? 2.或者有些时候我们系统需

  • Springboot允许logger.debug输出日志方式

    目录 Springboot允许logger.debug输出日志 SpringBoot启动debug级别日志报错 错误截图 原因 解决办法 Springboot允许logger.debug输出日志 说实话对日志这东西一直只是太肤浅的懂,就会用logger.info和logger.error输出,今天在写LemonRobot项目的时候,决定把调试信息也打出来,然后根据日志级别控制让上线的时候不显示debug级别的日志. 但是运行后发现,默认logger.debug产生的日志也没有输出到控制台,经过一

  • Python同时向控制台和文件输出日志logging的方法

    本文实例讲述了Python同时向控制台和文件输出日志logging的方法.分享给大家供大家参考.具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能. #-*- coding:utf-8 -*- import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt

  • Linux shell脚本输出日志笔记整理(必看篇)

    1.日志方法简介: #日志名称 log="./upgrade.log" #操作日志存放路径 fsize=2000000 #如果日志大小超过上限,则保存旧日志,重新生成日志文件 exec 2>>$log #如果执行过程中有错误信息均输出到日志文件中 #日志函数 #参数 #参数一,级别,INFO ,WARN,ERROR #参数二,内容 #返回值 function zc_log() { #判断格式 if [ 2 -gt $# ] then echo "parameter

随机推荐