SpringBoot의 기본 로그 구성
SpringBoot 상자 밖으로 나와서 Commons Logging 사용하여 기본적으로 로깅 프레임 워크를 제공하지만 기본 구성은 Java Util Logging, Log4J, Log4J2 및 Logback과 같은 공통 로그를 지원합니다. 각 로거는 구성을 통해 콘솔 또는 파일을 사용하여 로그 컨텐츠를 출력 할 수 있습니다.
콘솔 출력
로그 로그와 관련하여, 처음 5 개의 로그 레벨은 레벨입니다. 높음에서 낮음, ERROR , WARN , INFO , DEBUG 및 TRACE 낮은 레벨은 높은 수준의 정보를 출력하며 높은 수준은 저수준 정보를 출력하지 않습니다. 예를 들어, 레벨이 ERROR 로 설정되면 WARN , INFO 및 DEBUG 정보가 출력되지 않습니다. SpringBoot에서 ERROR , WARN 및 INFO 레벨은 기본적으로 콘솔에 구성됩니다. 로그백에는 FATAL 수준이 없으며 ERROR 수준으로 취급됩니다.
두 가지 방법으로 디버그 레벨로 전환 할 수 있습니다.
application.properties 구성. 이 속성이 True로 설정되면 코어 로거 (내장 컨테이너, 최대 절전 모드 및 스프링 포함)는 더 많은 컨텐츠를 출력하지만 직접 적용한 로그는 디버그 레벨에 출력되지 않습니다.다채로운 출력
SpringBoot는 버전 1.4.0 이후 색상 로그 출력을 지원합니다. 터미널이 ANSI를 지원하면 색상 출력을 설정하면 로그를 더 읽기 쉽게 만듭니다. spring.output.ansi.enabled 매개 변수를 application.properties 에서 설정하여 지원합니다.
NEVER : ANSI 색상 출력 비활성화 (기본 항목)DETECT : 터미널이 ANSI를 지원하는지 확인합니다. 그렇다면 색상 출력을 사용하십시오 (권장 항목)ALWAYS : 항상 Ansi 색 형식을 사용하여 출력하십시오. 터미널이 지원하지 않으면 많은 간섭 정보가 있습니다. 사용하는 것이 좋습니다.파일 출력
SpringBoot의 기본 구성은 콘솔에만 출력되며 파일에 기록되지 않지만 일반적으로 프로덕션 환경을 사용할 때 파일에 녹화해야합니다.
파일 출력을 늘리려면 application.properties 에서 logging.file 또는 logging.path 속성을 구성해야합니다.
logging.file : 절대 경로 또는 상대 경로 일 수있는 파일을 설정하십시오. 예를 들면 : logging.file = my.loglogging.path : 디렉토리 설정, spring.log 파일은이 디렉토리 아래에서 생성되며 로그 컨텐츠가 다음과 같이 작성됩니다.로그 파일은 10MB 크기로 잘려서 새 로그 파일이 발생합니다. 기본 레벨은 다음과 같습니다. 오류, 경고, 정보입니다
레벨 제어
SpringBoot에서는 application.properties 에서 로깅을 완료하는 레벨 컨트롤 만 구성하면됩니다.
구성 형식 : Logging.Level.*= 레벨
logging.level : 로그 레벨 제어 접두사, *는 패키지 이름 또는 로거 이름입니다.LEVEL : 옵션 추적, 디버그, 정보, 경고, 오류, 치명적, OFF예를 들어:
DEBUG 레벨에서 출력됩니다.WARN 레벨에서 출력입니다사용자 정의 로그 구성
기본 구성을 사용하지 않으려면 자신의 로그 구성 파일을 추가하십시오. 로깅 서비스는 일반적으로 ApplicationContext 생성되기 전에 초기화되므로 Spring 의 구성 파일을 통해 제어 할 필요가 없습니다. 따라서 로그 제어 및 관리는 시스템 속성 및 기존의 스프링 부팅 외부 구성 파일을 통해 여전히 잘 지원할 수 있습니다.
다른 로깅 시스템에 따라 다음 규칙에 따라 구성 파일 이름을 구성 할 수 있으며 올바르게로드 할 수 있습니다.
SpringBoot 공식 권장 사항 -spring 과 함께 로그 구성으로 파일 이름을 사용하려는 공식 권장 사항 (Logback.xml 대신 Logback -Spring.xml 사용 등)
사용자 정의 출력 형식
SpringBoot에서는 application.properties 에서 다음 매개 변수를 구성하여 출력 형식을 제어 할 수 있습니다.
logging.pattern.console : 콘솔의 스타일 출력을 정의합니다 (JDK 로거는 지원되지 않음)logging.pattern.file : 파일에 대한 출력 스타일을 정의합니다 (JDK Logger는 지원되지 않음)이 형식은 응용 프로그램 구성 파일이 아닌 로그 구성 파일에서 직접 정의 할 수 있습니다.
공통 로그백 구성 파일 템플릿
<? xml version = "1.0"alcoding = "utf-8"?> <configuration> <!-로그 파일의 스토리지 주소를 정의하고 로그 백의 구성에서 상대 경로를 사용하지 않습니다-> <속성 이름 = "log_home"value = "d :/logs"/> <!-컬러 로그 렌더링 클래스-> clr " converterclass = "org.springframework.boot.logging.logback.colorconverter"/> <converilerule converword = "wex"converterclass = "org.springframework.boot.logging.logback.whitespacetrowableproxyconter"/> <converionruleword = "Wex" converterclass = "org.springframework.boot.logging.logback.extendedwhitespacethrowableproxyconverter"/> <!-색상 로그 형식-> <property name = "console_log_pattern"value = "$ {console_log_pattern :-%d {yyyy-mm-dd hh : mm : ss.sss}) {faint} %clr ($ {log_level_pattern :- %5p}) %clr ($ {pid :-}) {magenta} %clr (-) {faint} %clr ([ %15.15t]) {faint} %clr ( %-40.40Logger {39}) {cyan} %clr (:) {faint} %m %n $ {log_exception_conversion_word :- %wex}} "/> <!-콘솔 출력 설정-> <부록 이름 ="console "> encoder> <!- %d 대표자 표현 : %d 대표자. %-5level : 왼쪽 %msg : log 메시지에서 5자를 표시하고, %n은 Newline 문자입니다-> <!-<pattern> %d {yyyy-mm-dd hh : mm : ss.sss} [ %스레드] %-5level %logger {36}- %msg %n </pattern>-> $ {console_log_}} </pattern>. <CHARSET> UTF8 </charset> </encoder> </appender> <!-매일 로그 파일 생성-> <appender name = "file"> <RollingPolicy> <!-로그 파일에 의한 파일 이름 출력-> <filenamepattern> $ {log_home} /mixedsys.앙 {yyyy-mm-dd}. </rollingpolicy> <comoder> <pattern> %d {yyyy-mm-dd hh : mm : mm : ss.sss} [ %스레드] %-5level %logger {36}- %msg %n </encoder> </appender> <!-Logger의 출력 레벨 (패키지. Class)- name = "org.springframework.web.servlet.mvc.method.annotation.exceptionhandlerexceptionResolver"level = "debug"> <appender-Ref ref = "console" /<appender-ref ref = "file" /> < /logger> <logger name = "org.springframework."org.springframework. Hibernate SQL-> <!-<logger name = "org.hibernate.type.descriptor.sql.basicbinder"level = "trace" /> <logger name = "org.hibernate.type.descriptor.sql.basicextractor"level = "debger" level = "debug" /> <logger name = "org.hibernate.engine.queryparameters"level = "debug" /<logger name = "org.hibernate.engine.query.hqlqueryplan"level = "debug" />-> <!-로그 출력 레벨-> <root level = "info"! <Appender-Ref Ref = "Console" /> <Appender-Ref Ref = "File" /> < /root> <!-데이터베이스에 비동기로 로그를 기록합니다-> <!-<appender name = "db"> 데이터베이스 <connectionsource> Connections> Connection Pool <dataSource> <DriverClass> < /driverclass> <Url> jdbc : mysql : //127.0.0.1 : 3306/databaseName </url> <user> root </user> <password> root> </dataSource> </connectionSource> </applender> -> </configuration>위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.