>  기사  >  Java  >  Spring Boot의 로그 관리 세부 소개에 대한 심층적인 이해

Spring Boot의 로그 관리 세부 소개에 대한 심층적인 이해

黄舟
黄舟원래의
2018-05-11 11:16:291646검색

이 글은 주로 Spring Boot 로그 관리 관련 정보를 심도 있게 소개하고 있습니다. 도움이 필요한 친구들이 참고할 수 있도록 하겠습니다.

머리말

Spring Boot는 모든 내부 로그에 Commons Logging을 사용하지만 기본 구성에서는 Java Util Logging과 같은
공통 로그에 대한 지원도 제공합니다. Log4J, Log4J2 및 Logback. 각 로거는 콘솔이나 파일을 사용하여 로그 내용을 출력하도록 구성할 수 있습니다.

로그 출력 형식

2016-08-19 10:22:04.233 INFO 7368 --- [   main] com.juzi.AsyncTest      : Started AsyncTest in 10.084 seconds (JVM running for 12.545)

출력 콘텐츠 요소는 다음과 같습니다.

  • 시간 및 날짜—밀리초 단위까지 정확

  • 로그 수준 — ERROR, WARN, INFO, DEBUG 또는 TRACE

  • 프로세스 ID

  • 구분 기호 — 실제 로그의 시작을 식별합니다

  • 스레드 이름 — 대괄호로 묶습니다(콘솔 출력이 잘릴 수 있음)

  • 로거 이름 - 일반적으로 소스 코드의 클래스 이름을 사용합니다.

  • 로그 내용

콘솔 출력

Spring Boot는 기본적으로 ERROR, WARN 및 INFO 수준 로그를 콘솔에 출력하도록 구성됩니다.

두 가지 방법으로 DEBUG 수준으로 전환할 수 있습니다.

1. 다음과 같이 명령을 실행한 후 –debug 플래그를 추가합니다. $ java -jar myapp.jar –debug

2. application.properties에서 debug=true을 구성합니다. 이 속성이 true로 설정되면 코어 Logger(내장형 컨테이너, 최대 절전 모드, 스프링 포함)는 더 많은 콘텐츠를 출력하지만 자체 애플리케이션의 로그는 다음과 같이 출력되지 않습니다. 디버그 수준.

다채로운 출력

단말기가 ANSI를 지원하는 경우 컬러 출력을 설정하면 로그를 더 쉽게 읽을 수 있습니다. application.properties에서 spring.output.ansi.enabled 매개변수를 설정하여 지원됩니다.

1.NEVER: ANSI 컬러 출력을 비활성화합니다(기본 항목)

2.DETECT: 터미널이 ANSI를 지원하는지 확인합니다. 그렇다면 컬러 출력을 사용합니다(권장 항목).

3.항상: 항상 ANSI 색상 형식 출력을 사용하십시오. 단말기가 이를 지원하지 않으면 간섭 정보가 많으므로 사용하지 않는 것이 좋습니다.

파일 출력

Spring Boot의 기본 구성은 콘솔에만 출력되며 파일에 기록되지 않습니다. 그러나 일반적으로 사용 시에는 파일에 기록해야 합니다. 생산 환경.

파일 출력을 늘리려면 application.properties에서 logging.file 또는 logging.path 속성을 ​​구성해야 합니다.

1.logging.file 설정 파일은 절대 경로일 수도 있고 상대 경로일 수도 있습니다. 예: logging.file=my.log

2. logging.path, 디렉터리를 설정하면 spring.log 파일이 해당 디렉터리에 생성되고 로그 내용이 다음과 같이 기록됩니다. logging.path=/var/log

크기가 10Mb이면 로그 파일이 잘리고 새 로그 파일이 생성됩니다. 기본 수준은 ERROR, WARN, INFO *

수준 제어

Spring In Boot에서는 application.properties에서만 구성하면 로깅 수준 제어가 완료됩니다.

구성 형식: logging.level.*=LEVEL

1.logging.level: 로그 수준 제어 접두사, *는 패키지 이름 또는 로거 이름

2.LEVEL: option TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

예:

logging.level.com.juzi=DEBUG com.juzi패키지 아래의 모든 클래스는 DEBUG 수준으로 출력됩니다

logging.level.root=WARN 루트 로그는 WARN 수준으로 출력됩니다.

사용자 정의 로그 구성

로그 서비스는 일반적으로 ApplicationContext가 생성되기 전에 초기화되므로 Spring 구성 파일 제어를 통해 전달될 필요는 없습니다.
따라서 로그 제어 및 관리는 시스템 속성과 기존 Spring Boot 외부 구성 파일을 통해 여전히 잘 지원될 수 있습니다.

다른 로그 시스템에 따라 다음 규칙에 따라 구성 파일 이름을 구성할 수 있으며 올바르게 로드됩니다.

    1.Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy logback日志配置
     2.Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
     3.Log4j2:log4j2-spring.xml, log4j2.xml
     4.JDK (Java Util Logging):logging.properties

Spring Boot는 공식적으로 -spring과 함께 파일 이름을 사용할 것을 권장합니다. 로그 구성(예: logback.xml 대신 logback-spring.xml 사용)

사용자 정의 출력 형식

Spring Boot에서는 application.properties을 전달할 수 있습니다. 출력 형식을 제어하려면 다음 매개변수를 구성하십시오.

1.logging.pattern.console: 콘솔에 대한 출력 스타일을 정의합니다(JDK Logger는 지원되지 않음)

2.logging.pattern.file: 출력을 파일 스타일로 정의합니다. (JDK Logger는 지원되지 않습니다.)


위 내용은 Spring Boot의 로그 관리 세부 소개에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.