Spring boot 는 로그 백 을 사용 하여 로그 관리 과정 에 대한 상세 한 설명 을 실현 합 니 다.

Springboot 의 기본 통합 은 logback 입 니 다.logback 은 상대 적 으로 log4j 보다 우수 하 며,log4j 2 도 logback 의 디자인 을 참고 하 였 습 니 다.이 편 은 logback 을 어떻게 사용 하 는 지 보 러 왔 습 니 다.
1.jar 패키지 가 져 오기

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
  </dependency>
2.logback-spring.xml 프로필 만 들 기

<?xml version="1.0" encoding="UTF-8"?>
<!-- scan           ,        scanPeriod       -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
  <contextName>zlyPay-log</contextName>

  <!-- info    -->
  <property name="log.path" value="D:\\log\\" />
  <property name="log.file" value="D:\\log\\logback.log" />

  <!-- errr,     -->
  <property name="log.path.error" value="D:\\log\\error\\" />
  <property name="log.file.error" value="D:\\log\\error\\logback-error.log" />
 <!--     -->
  <property name="log.path.warn" value="D:\\log\\warn\\" />
  <property name="log.file.warn" value="D:\\log\\warn\\logback-error.log" />

  <include resource="org/springframework/boot/logging/logback/base.xml"/>

  <!--      -->
  <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.file}</file>
    <!--     :           -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!--     :      128MB     +  i   log   -->
      <fileNamePattern>${log.path}zlyPay-log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>512MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
      <!--       :30 -->
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <append>true</append>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
      <charset>utf-8</charset>
    </encoder>
    <!--          
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>info</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter> -->
  </appender>

  <!--      -->
  <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.file.error}</file>
    <!--     :           -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!--     :      2MB     +  i   log   -->
      <fileNamePattern>${log.path.error}zlyPay-log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>128MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
      <!--       :180 -->
      <maxHistory>180</maxHistory>
    </rollingPolicy>
    <append>true</append>
    <!--      -->
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
      <charset>utf-8</charset>
    </encoder>
    <!--         -->
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <!--       -->
      <level>ERROR</level>
      <!--       :  (  ) -->
      <onMatch>ACCEPT</onMatch>
      <!--        :  (   ) -->
      <onMismatch>DENY</onMismatch>
    </filter>
  </appender>

  <!--     -->
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!--      -->
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
      <charset>utf-8</charset>
    </encoder>
    <!--   appender      ,       ,                        -->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <!--            ,sql   -->
      <level>DEBUG</level>
    </filter>
  </appender>
  <!--      -->
<appender name="STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
   <!--     :           -->
   <file>${log.file.warn}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!--     :      2MB     +  i   log   -->
      <fileNamePattern>${log.path.warn}zlyPay-log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <maxFileSize>128MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
      <!--       :180 -->
      <maxHistory>180</maxHistory>
    </rollingPolicy>
    <append>true</append>
    <!--      -->
  
  <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    <!--<Pattern>${ENCODER_PATTERN}</Pattern>-->
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{QTRACER} %X{MDCContextId}-%X{MDCSupplyService}-%X{MDCSupplyRetryTime} %-5level %logger{0} - %msg%n</pattern>
  </encoder>
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>warn</level>
    <onMatch>ACCEPT</onMatch>
     <onMismatch>DENY</onMismatch>
  </filter>
</appender>
   <!--   sql   -->
  <logger name="org.jcut.dao" level="DEBUG"></logger>

  <!-- additivity     2 -->
  <logger name="com.cltx" level="INFO" additivity="false">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="INFO_FILE"/>
    <appender-ref ref="ERROR_FILE"/>
  </logger>

  <root level="INFO">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="INFO_FILE" />
    <appender-ref ref="ERROR_FILE" />
  </root> 
</configuration>
3.application.properties 파일 에 로그 파일 경 로 를 추가 합 니 다.
\#지정 한 로그 프로필 불 러 오기
logging.config=classpath:logback-spring.xml
\#디 버 깅 환경 용 DEBUG,생산 환경 용 info
logging.level.root=DEBUG
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기