2016-09-21 26 views
6

Trong dự án khởi động mùa xuân của chúng tôi, chúng tôi đang sử dụng slf4j cho mục đích ghi nhật ký. Dưới đây là cấu hình mà chúng tôi đã thêm vào trong application.properties tập tinKhởi động mùa xuân - số lượng tệp nhật ký dự phòng bị giới hạn ở 7

logging.file=/opt/logs/my_log.log 
logging.level.org.springframework.web=INFO 
logging.level.org.hibernate=INFO 
logging.level.nl.yestelecom.boss=DEBUG 
logging.level.com.github.isrsal.logging.LoggingFilter=DEBUG 

tạo ra chỉ có 7 tập tin sao lưu (my_log.log.1, my_log.log.2 ..., my_log.log.7) với mỗi tệp có kích thước 10.5MB và sau đó quá trình ghi nhật ký không xảy ra.

Có cách nào để thay đổi hành vi này không?

Chúng tôi đã xem xét các thuộc tính có sẵn của khởi động mùa xuân nhưng không tìm thấy bất kỳ điều gì. Bất kỳ đề xuất nào đều được đánh giá cao.

Trả lời

11

Spring-Boot chỉ cho phép các thuộc tính giới hạn được định cấu hình trong ứng dụng của nó.properties. Xem số list here.

Cấu hình mặc định (out-of-the-box) sử dụng Spring-boot được định nghĩa trong tệp base.xml. Xem base.xml config here trong đó bao gồm this File appender

Có 2 cách để thêm cấu hình

  1. Thêm logback-spring.xml

Nếu có một cấu hình XML logback với tên logback xuân. xml trong classpath của dự án, nó được chọn bởi Spring-Boot khi khởi tạo.

  1. Point để tập tin cấu hình từ application.properties

Trong application.properties sử dụng sau đây để trỏ đến tùy chỉnh logback XML của bạn

logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback 

Khi bạn thêm cấu hình phụ bằng cách sử dụng bất kỳ bước nào trong số 2 bước trên, chiến lược rollover có thể được đề cập trong XML tùy chỉnh như thế này

<?xml version="1.0" encoding="UTF-8"?> 
<configuration scan="true"> 
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <charset>UTF-8</charset> 
      <Pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n</Pattern> 
     </encoder> 
    </appender> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <encoder> 
      <pattern>${FILE_LOG_PATTERN}</pattern> 
     </encoder> 
     <file>${LOG_FILE}</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
      <fileNamePattern>${LOG_FILE}.%i</fileNamePattern> 
      <minIndex>1</minIndex> 
      <maxIndex>10</maxIndex> 
     </rollingPolicy> 
     <triggeringPolicy 
     class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
      <MaxFileSize>10MB</MaxFileSize> 
     </triggeringPolicy> 
    </appender> 

    <root level="DEBUG"> 
     <appender-ref ref="CONSOLE" /> 
     <appender-ref ref="FILE"/> 
    </root> 
</configuration> 
+0

Cảm ơn Deepak cho câu trả lời chi tiết :) –

+0

Bạn được chào đón bạn bè – DeepakV

5

SFL4J chỉ là trình bao bọc. Bạn cần phải bổ sung thêm cấu hình cho thư viện logback:

<configuration> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>logFile.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- daily rollover --> 
     <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern> 

     <!-- keep 30 days' worth of history capped at 3GB total size --> 
     <maxHistory>30</maxHistory> 
     <totalSizeCap>3GB</totalSizeCap> 

    </rollingPolicy> 

    <encoder> 
     <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
    </encoder> 
    </appender> 

    <root level="DEBUG"> 
    <appender-ref ref="FILE" /> 
    </root> 
</configuration> 

source

Trong trường hợp này chúng ta có các bản ghi từ 30 ngày qua nhưng không lớn hơn 3GB.

+0

Cảm ơn @Koziolek vì đã trả lời ngay lập tức. Tôi đã suy nghĩ làm thế nào để tải tập tin này và tôi đã nhận câu trả lời của Deepak :) –

Các vấn đề liên quan