当前位置:首页 » JAVA技术教程

dubbo使用logback输出日志(jetty 启动)

2018-05-16 08:21 本站整理 浏览(48)

1. 背景 

 

最近做一个dubbo 相关项目, 开发环境使用jetty 启动项目时候,

 

关于dubbo 的日志显示如下:

 

 

 

 

 

作为一个有代码洁癖的我,不能忍

 

我们商城使用 slf4j+logback 体系, 能否把dubbo 的日志切换到 logback 上来呢?

 

 

2. 原因

 

跟踪 dubbo 的日志类 com.alibaba.dubbo.common.logger.LoggerFactory

 

发现源码:

 

 

    // 查找常用的日志框架
    static{
        String logger = System.getProperty("dubbo.application.logger");
        if ("slf4j".equals(logger)){
            setLoggerAdapter(new Slf4jLoggerAdapter());
        }else if ("jcl".equals(logger)){
            setLoggerAdapter(new JclLoggerAdapter());
        }else if ("log4j".equals(logger)){
            setLoggerAdapter(new Log4jLoggerAdapter());
        }else if ("jdk".equals(logger)){
            setLoggerAdapter(new JdkLoggerAdapter());
        }else{
            try{
                setLoggerAdapter(new Log4jLoggerAdapter());
            }catch (Throwable e1){
                try{
                    setLoggerAdapter(new Slf4jLoggerAdapter());
                }catch (Throwable e2){
                    try{
                        setLoggerAdapter(new JclLoggerAdapter());
                    }catch (Throwable e3){
                        setLoggerAdapter(new JdkLoggerAdapter());
                    }
                }
            }
        }
    }

 

 

 

可以发现,  dubbo 会判断 dubbo.application.logger 环境变量参数值

 

写道