SpringBoot 에서 Logback 관리 기록 로 그 를 사용 합 니 다.

SpringBoot 의 기본 로그 설정SpringBoot 상 자 를 열 면 바로 사용 할 수 있 습 니 다.기본적으로 로그 프레임 워 크 를 설정 하고 사용 Commons Logging 하지만 기본 설정 도 자주 사용 하 는 로그 에 대한 지원 을 제공 합 니 다.예 를 들 어 자바 Util Logging,Log4J,Log4J 2 와 Logback.모든 Logger 는 설정 을 통 해 콘 솔 이나 파일 로 로그 내용 을 출력 할 수 있 습 니 다.
콘 솔 출력
로그 에 대해 먼저 말 하 는 5 개의 로그 등급 LEVEL:높 은 등급 에서 낮은 등급 으로ERROR , WARN , INFO , DEBUG, TRACE 낮은 등급 으로 높 은 등급 의 정 보 를 출력 하고 높 은 등급 으로 낮은 등급 의 정 보 를 출력 하지 않 습 니 다.예 를 들 어 등급 을ERROR 로 설정 하면WARN ,INFO , DEBUG 의 정 보 는 출력 되 지 않 습 니 다.SpringBoot 에 서 는 기본적으로 ERROR, WARN등급 의 로 그 를 콘 솔 로 출력 합 니 다.Logback 에는INFO 등급 이 없습니다.FATAL 등급 으로 처 리 됩 니 다.
우 리 는 두 가지 방식 으로 DEBUG 단계 로 전환 할 수 있 습 니 다.
  • 명령 을 실행 한 후--debug 플래그 를 추가 합 니 다.예 를 들 어$java-jar my app.jar--debug
  • ERROR 에 debug=true 를 설정 합 니 다.이 속성 이 true 로 설정 되 어 있 을 때 핵심 Logger(내장 용기,hibenate,spring 포함)는 더 많은 내용 을 출력 하지만 자신 이 사용 하 는 로 그 는 DEBUG 급 으로 출력 되 지 않 습 니 다.
  • 다채로운 출력
    SpringBoot 는 1.4.0 버 전부터 컬러 로그 출력 을 지원 합 니 다.터미널 에서 ANSI 를 지원 한다 면 컬러 출력 을 설정 하면 로 그 를 더욱 읽 을 수 있 습 니 다. application.properties application.properties인 자 를 설정 하여 지원 합 니 다.
  • spring.output.ansi.enabled :ANSI-colored 출력 사용 하지 않 기(기본 항목)
  • NEVER :터미널 이 ANSI 를 지원 하 는 지 확인 합 니 다.그렇다면 컬러 출력(추천 항목)
  • 을 사용 합 니 다.
  • DETECT :항상 ANSI-colored 형식 으로 출력 합 니 다.터미널 이 지원 하지 않 을 때 방해 정보 가 많 습 니 다.추천 하지 않 습 니 다
  • 파일 출력
    SpringBoot 기본 설정 은 콘 솔 에 만 출력 되 며 파일 에 기록 되 지 않 습 니 다.그러나 저 희 는 보통 생산 환경 에서 사용 할 때 파일 로 기록 해 야 합 니 다.
    파일 출력 을 늘 리 려 면ALWAYS 에서application.properties 또는 logging.file 속성 을 설정 해 야 합 니 다.
  • logging.path :파일 을 설정 하면 절대 경로 일 수도 있 고 상대 경로 일 수도 있 습 니 다.logging.file=my.log
  • logging.file :디 렉 터 리 를 설정 하면 이 디 렉 터 리 에 spring.log 파일 을 만 들 고 로그 내용 을 기록 합 니 다.예 를 들 어 logging.path=/var/log
  • 로그 파일 은 10Mb 크기 에서 차단 되 어 새로운 로그 파일 이 생 성 됩 니 다.기본 단 계 는 ERROR,WARN,INFO 입 니 다.
    단계 제어
    SpringBoot 에 서 는 로그 기록 을 완성 하 는 단계 만 설정 할 수 있 습 니 다.
    설정 형식:logging.level.*=LEVEL
  • logging.path:로그 단계 제어 접두사,*패키지 이름 또는 Logger 이름
  • application.properties :옵션 TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
  • 예:
  • logging.level.com.controller=DEBUG:com.controller 는 모든 class 를logging.level 등급 으로 출력 합 니 다
  • logging.level.root=WARN:root 로 그 를LEVEL단계 로 출력
  • 사용자 정의 로그 설정
    기본 설정 을 사용 하지 않 으 려 면 로그 프로필 만 추가 하면 됩 니 다.로그 서 비 스 는 일반적으로DEBUG 생 성 전에 초기 화 되 기 때문에WARN 설정 파일 을 통 해 제어 해 야 하 는 것 이 아 닙 니 다.따라서 시스템 속성 과 전통 적 인 Spring Boot 외부 프로필 을 통 해 로그 제어 와 관 리 를 잘 지원 할 수 있 습 니 다.
    로그 시스템 에 따라 다음 규칙 에 따라 파일 이름 을 구성 할 수 있 습 니 다.올 바 르 게 불 러 올 수 있 습 니 다.
  • Logback: logback-spring.xml , logback-spring.groovy , logback.xml , logback.groovy
  • Log4j: log4j-spring.properties , log4j-spring.xml , log4j.properties , log4j.xml
  • Log4j2: log4j2-spring.xml , log4j2.xml
  • JDK (Java Util Logging): logging.properties
  • SpringBoot 공식 추천 ApplicationContext 가 있 는 파일 이름 을 로그 설정 으로 우선 사용 합 니 다(예 를 들 어 logback-spring.xml 를 사용 합 니 다.logback.xml 이 아 닌 logback-spring.xml 을 사용 합 니 다)
    사용자 정의 출력 형식
    SpringBoot 에서Spring 다음 매개 변수 로 출력 형식 을 제어 할 수 있 습 니 다.
  • -spring :콘 솔 에 출력 할 스타일 을 정의 합 니 다(JDK Logger 는 지원 되 지 않 습 니 다)
  • application.properties :파일 에 출력 할 스타일 을 정의 합 니 다(JDK Logger 는 지원 되 지 않 음)
  • 설정 파일 대신 로그 설정 파일 에서 이 형식 을 직접 정의 할 수도 있 습 니 다.
    자주 사용 하 는 Logback 프로필 템 플 릿
    
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     <!--               LogBack           -->
     <property name="LOG_HOME" value="d:/logs"/>
    
     <!--            -->
     <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
     <conversionRule conversionWord="wex"
         converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
     <conversionRule conversionWord="wEx"
         converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
     <!--        -->
     <property name="CONSOLE_LOG_PATTERN"
        value="${CONSOLE_LOG_PATTERN:-%clr(%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      -->
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
     <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
     <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
     <pattern>${CONSOLE_LOG_PATTERN}</pattern>
     <charset>utf8</charset>
     </encoder>
     </appender>
    
     <!--            -->
     <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <!--          -->
       <fileNamePattern>${LOG_HOME}/mixedSys.%d{yyyy-MM-dd}.log</fileNamePattern>
      </rollingPolicy>
      <encoder>
       <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
      </encoder>
     </appender>
    
     <!--   logger( . )      -->
     <logger name="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver" level="DEBUG" >
     <appender-ref ref="console" />
     <appender-ref ref="file" />
     </logger>
    
     <logger name="org.springframework.boot" level="DEBUG"/>
     <!--   Hibernate sql    -->
     <!-- <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
     <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
     <logger name="org.hibernate.SQL" level="DEBUG" />
     <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
     <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" /> -->
    
     <!--        -->
     <root level="INFO"> <!--   debug          --> 
      <appender-ref ref="console" /> 
      <appender-ref ref="file" /> 
     </root> 
     
     <!--         --> 
     <!-- <appender name="DB" class="ch.qos.logback.classic.db.DBAppender"> 
               
      <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> 
           
       <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
        <driverClass>com.mysql.jdbc.Driver</driverClass> 
        <url>jdbc:mysql://127.0.0.1:3306/databaseName</url> 
        <user>root</user> 
        <password>root</password> 
       </dataSource> 
      </connectionSource> 
     </appender> -->
     
    </configuration>
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기