[SPRING] Spring 부트가 로그를 콘솔에 인쇄하지 못하게 함
SPRINGSpring 부트가 로그를 콘솔에 인쇄하지 못하게 함
내 응용 프로그램 용 스프링 부팅을 사용하고 있으며 기본 스프링 부팅 로깅을 사용하고 있습니다.
내 application.properties에서 logging.file에 대한 파일 경로를 추가했습니다.
logging.file= ${logger_path}
내 pom.xml에는 다음이 포함되어 있습니다.
<logger_path>/tmp/app.log</logger_path>
응용 프로그램을 시작하면 로깅 메시지가 /tmp/app.log의 파일에 인쇄되지만 문제는 콘솔에 로그 메시지도 인쇄한다는 것입니다. 필자는 로그 파일을 지정했을 때 콘솔에 인쇄하는 이유를 이해하지 못합니다 (지정된 파일에 인쇄하고 있지만).
스프링 부팅이 로그 메시지를 콘솔로 출력하지 못하도록하는 구성이 있습니까?
해결법
-
==============================
1.스프링 부트는 내장 된 로그백 로거와 함께 제공되며 기본적으로 콘솔에 프린트되도록 구성됩니다.
스프링 부트는 내장 된 로그백 로거와 함께 제공되며 기본적으로 콘솔에 프린트되도록 구성됩니다.
로그백 구성을 겹쳐 써야합니다 (클래스 경로에 고유 한 logback.xml 제공). 이것은 여기에 설명되어 있습니다 - 섹션 66.1
어떻게 로그백 로깅을 비활성화하려면 여기를 읽으십시오 -
당신이 볼 수 있듯이 OFF 값을 제공해야합니다.
<configuration> <include resource="base.xml" /> . . <property name="root.level.console" value="OFF" /> </configuration>
참고 : 일반적인 생각은 스프링 부트에서 오는 로그백 구성이 최소한이라는 것입니다. 사용자가 직접 로그백 구성을 제공하고 기존 로그 덮어 쓰기 설정을 완전히 덮어 쓰려고합니다. 로그 파일 - 어 펜더 만 구성한 나만의 로그백 구성을 제공합니다. 이는 일반적인 접근 방식입니다.
-
==============================
2.logback-spring.xml에 다음과 같은 구성을 가진 console-appender가 아닌 file-appender.xml을 포함 시키십시오 :
logback-spring.xml에 다음과 같은 구성을 가진 console-appender가 아닌 file-appender.xml을 포함 시키십시오 :
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
또한 logging.file을 application.properties에 추가해야합니다.
이것은 스프링 부트 문서에서 언급 한 내용을 준수합니다 (http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html).
-
==============================
3.logback.xml에서 콘솔 구성을 제거하려고했습니다. 하지만 콘솔에 계속 로그인했습니다. 그래서 내가 한 것은 springboot에 의해 로깅 설정에 추가 된 appender를 제거한 것입니다. 따라서 우리는 콘솔에서 springboot 로깅을 중단하고 로그 파일을 분리 할 수 있습니다. 특정 appenders가 추가 된 응용 프로그램의 끝에 아래의 라인을 추가합니다. 사용자 정의 appender는 이러한 appender 이름과 일치하지 않아야합니다. 그것은 나를 위해 일했습니다.
logback.xml에서 콘솔 구성을 제거하려고했습니다. 하지만 콘솔에 계속 로그인했습니다. 그래서 내가 한 것은 springboot에 의해 로깅 설정에 추가 된 appender를 제거한 것입니다. 따라서 우리는 콘솔에서 springboot 로깅을 중단하고 로그 파일을 분리 할 수 있습니다. 특정 appenders가 추가 된 응용 프로그램의 끝에 아래의 라인을 추가합니다. 사용자 정의 appender는 이러한 appender 이름과 일치하지 않아야합니다. 그것은 나를 위해 일했습니다.
// get instance of your log4j instance Logger logger = LogManager.getRootLogger(); logger.removeAppender("CONSOLE"); // stops console logging logger.removeAppender("LOGFILE"); // stops file logging
-
==============================
4.유사한 토론이 여기에서 찾아 낼 수있다.
유사한 토론이 여기에서 찾아 낼 수있다.
내 logback.xml은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration>
다만 당신이 아직도 문제점을 경험하는 경우에 대비하여 : 나는 그 주제에 관한 많은 토론을 읽었고 그것은 나를 위해 전혀 일하지 않았다. 불행히도 logback.xml 파일을 처음 만들 때 정말 어리석은 실수를 저질 렀습니다. 파일 이름의 시작 부분에 공백이 추가되었습니다. 따라서 파일이 사용되지 않았습니다. 따라서 파일 이름을 다시 살펴보고 "src / main / resources"에 파일을 추가하고 등록 정보 파일에서 "logging.config"항목을 제거하십시오.
-
==============================
5.최신 릴리스로 최신 1.3.1 릴리스에서 테스트되었습니다. base.xml이 defaults.xml로 이름이 변경되었습니다.
최신 릴리스로 최신 1.3.1 릴리스에서 테스트되었습니다. base.xml이 defaults.xml로 이름이 변경되었습니다.
여기에 답변 해주세요.
from https://stackoverflow.com/questions/31935151/prevent-spring-boot-from-printing-logs-to-console by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 3.1 PropertySourcesPlaceholderConfigurer 및 조건부 가져 오기 (0) | 2019.03.20 |
---|---|
[SPRING] JUnit 테스트를 생성 할 때 그러한 메소드가 없습니다. (0) | 2019.03.20 |
[SPRING] Spring Data JPA - 구성에 'entityManagerFactory'라는 bean 정의를 고려하십시오. (0) | 2019.03.20 |
[SPRING] Thymeleaf로 Javascript 함수 호출 (0) | 2019.03.20 |
[SPRING] @Transactional 주석이있는 Spring OpenSessionInViewFilter (0) | 2019.03.20 |