dubbo logback 출력 로그 사용 하기

1940 단어 dubbo
최근 에 dubbo 프로 토 콜 확장 을 하고 있 는데 dubbo 오류 정보 가 인쇄 되 지 않 은 것 을 발 견 했 습 니 다.그래서 소스 코드 를 추적 한 결과,dubbo 는 로그 출력 으로 로그 4j 를 기본 으로 사용 하고,우리 프로젝트 는 로그 백 으로 로 그 를 출력 합 니 다.
다음 방식 으로 slf4j 로 전환:
(1)jvm 시작 파 라 메 터 를 설정 하여 slf4j 를 지정 합 니 다.(이러한 방식 은 spring 용기 든 웹 용기 든 모두 적용 할 수 있 습 니 다)
          -Ddubbo.application.logger=slf4j
(2)웹 프로젝트,ContextLoaderListener 를 계승 하여 설정 할 수 있 습 니 다.
         System.setProperty("dubbo.application.logger","slf4j");
설정 하기 전에 시작 로 그 는 다음 과 같 습 니 다.
        c.a.d.common.logger.LoggerFactory - using logger: com.alibaba.dubbo.common.logger.log4j.Log4jLoggerAdapter
설정 후 시작 로 그 는 다음 과 같 습 니 다.
        c.a.d.common.logger.LoggerFactory - using logger: com.alibaba.dubbo.common.logger.slf4j.Slf4jLoggerAdapter
로그 출력 기 가 slf4j 로 전환 되 었 습 니 다.
다음은 dubbo 의 logger Factory 소스 코드 를 붙 여 로그 어댑터 부분 을 찾 습 니 다.
//          
	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());
                    }
                }
            }
    	}
	}

설정 이 없 으 면 로그 출력 을 기본적으로 사용 합 니 다.

좋은 웹페이지 즐겨찾기