springboot 에서 로그 정 보 를 catalina.base 에 저장 하 는 과정 분석

이 글 은 주로 springboot 에서 로그 정 보 를 catalina.base 에 저장 하 는 과정 을 소개 합 니 다.

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
  <!--      -->
  <property name="PROJECT_NAME" value="springBootTemplate" />

  <!--               LogBack           -->
  <property name="LOG_HOME" value="${catalina.base}/logs" />

  <!--       -->
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <withJansi>true</withJansi>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>

  <!--          -->
  <appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--    ,   ERROR      -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>ERROR</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!--          -->
      <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.system_error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
      <!--        -->
      <MaxHistory>15</MaxHistory>
      <!--         -->
      <MaxFileSize>10MB</MaxFileSize>
    </rollingPolicy>

    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>
  <logger name="system_error" additivity="true">
    <appender-ref ref="SYSTEM_FILE"/>
  </logger>

  <!--          ,           -->
  <appender name="MY_INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!--    ,   ERROR      -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <!--          -->
      <FileNamePattern>${LOG_HOME}/${PROJECT_NAME}.my_info.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
      <!--        -->
      <MaxHistory>15</MaxHistory>
      <!--         -->
      <MaxFileSize>10MB</MaxFileSize>
    </rollingPolicy>

    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <!--     :%d    ,%thread     ,%-5level:      5     %msg:    ,%n    -->
      <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n</pattern>
      <charset>UTF-8</charset>
    </encoder>
  </appender>
  <logger name="my_info" additivity="true">
    <appender-ref ref="MY_INFO_FILE"/>
  </logger>

  <!--            -->
  <springProfile name="dev">
    <root level="INFO">
      <appender-ref ref="CONSOLE" />
      <appender-ref ref="SYSTEM_FILE" />
    </root>
  </springProfile>

  <!--            -->
  <springProfile name="prod">
    <root level="INFO">
      <appender-ref ref="SYSTEM_FILE" />
    </root>
  </springProfile>
</configuration>
SpringBoot 프로젝트 는 공식 문서 에서 기본적으로 로그 프레임 워 크 에 의존 하고 있 으 며,그 중에서 추천 하 는 것 은 Logback 입 니 다.SpringBoot 는 Logback 에 의존 하기 때문에 수 동 으로 의존 을 추가 할 필요 가 없습니다.
어떻게 설정 합 니까?
1.resources 디 렉 터 리 에 logback-spring.xml 을 새로 만 듭 니 다.
이름 이 logback-spring.xml 이면 SpringBoot 는 자동 으로 인식 되 고 읽 기 때문에 application.yml 에서 다른 설정 을 할 필요 가 없습니다.
설정 파일 은 다음 과 같 습 니 다:
같은 logback 의 설정 파일 도 해당 하 는 설정 을 읽 습 니 다.예 를 들 어 dev 를 사용 하면 dev 의 설정 을 읽 습 니 다.prod 를 사용 하면 prod 의 설정 을 사용 합 니 다.
즉,프로젝트 가 출시 될 때 까지 springBoot 의 프로필 만 수정 하면 됩 니 다.logback 을 수정 하지 않 아 도 생산 환경 과 개발 환경 에서 서로 다른 로그 단 계 를 인쇄 할 수 있 습 니 다.
콘 솔 에 인쇄 된 정 보 는 처 리 를 통 해 표 시 된 색상 에 따라 구분 되 어 문 제 를 쉽게 발견 할 수 있 습 니 다.
그리고 로그 파일 의 분류 입 니 다.
도구 클래스 를 통 해 인쇄 된 로 그 를 분리 합 니 다.
필요 한 중요 로그 정 보 를 my 에 인쇄 합 니 다.info 파일 에서 중요 한 오류 정 보 는 system 에 저 장 됩 니 다.error 파일 중.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기