2016-11-11 1 views
3

로깅 구성에 logback.xml을 사용하는 스프링 부팅 응용 프로그램이 있습니다. 로그 수준을 동적으로 변경하는 옵션을 찾고 있습니다. 예를 들어, loglevel이 ERROR 인 응용 프로그램을 배포 한 경우이를 INFO로 변경하고 JVM 재배포/재시작을 원하지 않는다고 가정 해 보겠습니다.스프링 부트 응용 프로그램에서 로그백 로그 레벨을 동적으로 변경하는 방법

우리가 설정 서버처럼 logback.xml 구성 할 수있는 가능성이

답변

1

네, 확실히 가능하다에 Logback을 구성 할 수있다 달성하는 것입니다. className W 로그 레벨을 제공하는 나머지 엔드 포인트를 표시하십시오. slf4j를 사용하면 LoggerContext를 가져 와서 레벨을 변경할 수 있습니다.

LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); 
    context.getLogger(className).setLevel(Level.valueOf(level)); 

Apache Commons logging 및 기타 유사한 기능을 가지고 있습니다. 당신이 스프링 클라우드를 사용하는 경우

2

당신은 당신 YML 파일

logging: 
    level: 
    root: INFO 

그리고 당신이 그것을 변경하고 새 구성이 서비스를 다시 시작할 필요가 변경되지 가져 액츄에이터 새로 고침을 사용하여 구성을 새로 고칠 수 있습니다이있을 수 있습니다.

또한이 작업을 수행하는 데 필요한 UI가 필요한 경우 Spring-cloud-dashboard을 탐색 할 수 있습니다. 매우 멋지며 액츄에이터의 기능을 사용하여 로그 수준을 변경하는 것 외에도 많은 것을 보여줍니다.

관련 문제