Spring Boot의 로그 관리 이해

3267 단어 springboot로그
앞말
Spring Boot은 모든 내부 로그에 Commons Logging을 사용하지만 기본 구성은 자주 사용하는 로그를 지원합니다.
예: Java Util Logging, Log4J, Log4J2 및 Logback.각 Logger는 구성을 통해 콘솔이나 파일을 사용하여 로그 내용을 출력할 수 있습니다.
로그 출력 형식

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 or TRACE
  • 프로세스 ID
  • 구분자 - 표지 실제 로그의 시작
  • 스레드 이름 - 네모난 괄호 묶기(콘솔 출력을 차단할 수 있음)
  • Logger 이름 - 일반적으로 소스 코드를 사용하는 클래스 이름
  • 로그 내용
  • 콘솔 출력
    Spring Boot에서 기본적으로 구성된 ERROR, WARN 및 INFO 수준의 로그를 콘솔에 내보냅니다.
    두 가지 방법으로 DEBUG 레벨로 전환할 수 있습니다.
         1.명령을 실행한 후 다음과 같은 Cdebug 플래그를 추가합니다.
         2.$ java -jar myapp.jar Cdebug에서 설정application.properties, 이 속성이true로 설정되었을 때 핵심 Logger(삽입식 용기,hibernate,spring 포함)는 더 많은 내용을 출력하지만, 당신이 사용한 로그는 DEBUG 단계로 출력되지 않습니다.
    다채로운 출력
    터미널이 ANSI를 지원한다면, 컬러 출력을 설정하면 로그를 더욱 읽을 수 있습니다.debug=true에서 application.properties 매개변수를 설정하여 지원합니다.
         1.NEVER: ANSI-colored 출력 비활성화(기본값)
         2.DETECT: 터미널에서 ANSI를 지원하는지 확인합니다. 그렇다면 컬러 출력을 사용합니다(권장사항).
         3.ALWAYS: 항상 ANSI-colored 형식으로 출력되므로 터미널이 지원되지 않을 때 방해되는 정보가 많으므로 사용하지 않는 것이 좋습니다.
    파일 출력
    Spring Boot 기본 구성은 콘솔에만 내보내지고 파일에는 기록되지 않지만 일반적으로 프로덕션 환경에서는 파일 방식으로 기록됩니다.
    파일 출력을 늘리려면 spring.output.ansi.enabled 에서 application.properties 또는 logging.file 속성을 구성해야 합니다.
         1. logging.path, 파일을 설정하면 절대 경로일 수도 있고 상대 경로일 수도 있습니다.예: logging.file     2. logging.file=my.log, 디렉터리를 설정하면 이 디렉터리에 logging.path 파일이 생성되고 로그 내용에 기록됩니다. 예를 들어: spring.log로그 파일은 10Mb 크기로 차단되어 새 로그 파일이 생성됩니다. 기본 레벨은 ERROR, WARN, INFO *
    레벨 제어
    Spring Boot에서 구성 완료 로깅에 대한 레벨 제어만 logging.path=/var/log 하면 됩니다.
    구성 형식: application.properties     1. logging.level.*=LEVEL: 로그 레벨 제어 접두사, * 패키지 이름 또는 Logger 이름
         2.LEVEL: 옵션 TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
    예:logging.level 모든 class를 패키지하여 DEBUG 레벨로 출력logging.level.com.juzi=DEBUG com.juzi 루트 로그를 WARN 수준으로 출력
    사용자 정의 로그 구성
    로그 서비스는 일반적으로 ApplicationContext가 만들어지기 전에 초기화되기 때문에, 스프링의 프로필을 통해 제어해야 하는 것은 아닙니다.
    따라서 시스템 속성과 전통적인 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-spring.xml이 아니라logback.xml을 사용합니다.)
    출력 형식 사용자 정의
    스프링 부트logging.level.root=WARN에서 다음과 같은 매개변수를 구성하여 출력 형식을 제어할 수 있습니다.
         1. application.properties: 콘솔에 내보내는 스타일 정의(JDK Logger 지원되지 않음)
         2. logging.pattern.console: 파일로 내보내는 스타일 정의(JDK Logger 지원되지 않음)
    총결산
    이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 어느 정도 도움이 되고 의문이 있으면 댓글로 교류하시기 바랍니다.

    좋은 웹페이지 즐겨찾기