2015-04-28 12 views
22

के अंदर रोलिंग फ़ाइल एपेंडर को कॉन्फ़िगर कैसे करें स्प्रिंग बूट एप्लिकेशन के application.yml में दैनिक फ़ाइल एपेंडर को कॉन्फ़िगर करना संभव है?स्प्रिंग बूट के application.yml

अर्थात filenamePattern:। MyFile% d {yyyy-MM-dd-HH-मिमी-एस एस}

.log मैं ऐसे मेरी application.yml फ़ाइल में निम्न के रूप में विन्यास है।

logging: 

    file: /mypath/myfile.log 

    level: 
    mypackage: INFO 

धन्यवाद

उत्तर

20

default file appender आकार आधारित है (10MB)।

अपने logback.xml में सिर्फ कॉन्फ़िगर एक वर्णित here

TimeBasedRollingPolicy के रूप में अर्थात कुछ की तरह:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 

    <appender name="ROLLIN" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${LOG_FILE}</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 

     <!-- daily rollover --> 
     <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern> 

    </rollingPolicy> 
    </appender> 

    <root level="INFO"> 
    <appender-ref ref="ROLLIN" /> 
    </root> 

    <logger name="org.springframework.web" level="INFO"/> 
</configuration> 
+3

धन्यवाद डोनोवन, मैं सोच रहा था कि अगर मैं logwizard में logback.xml होने से बच सकता है मैं इसे config.yml में परिभाषित कर सकता हूं। यानी लॉगिंग के तहत मैं परिशिष्ट को प्रकार के साथ परिभाषित कर सकता हूं: फ़ाइल, currentLogFilename: /mypath/myfile.log, archiveLogFilenamePattern: /mypath/myfile-d%(yyyy-MM-dd}.log.gz, archiveFileCount: 3, timeZone: UTC। ऐसा लगता है कि वर्तमान में स्प्रिंग बूट में ऐसा संभव नहीं है। – ele

+0

हम्म, 'logging.config' [यहां] से एक लायक हो सकता है (https://github.com/spring-projects/spring-boot/blob/master /spring-boot/src/main/java/org/springframework/boot/logging/LoggingAplicationListener.java) लेकिन सुनिश्चित नहीं है ... –

+0

आपकी मदद और त्वरित प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मैं अब के लिए logback.xml का उपयोग करूंगा आपने सुझाव दिया। – ele

3

डिफ़ॉल्ट फ़ाइल appender ओवरराइड और दैनिक रोल ओवर करने के लिए इसे बदलने के लिए, यदि आप एक logback-spring.xml इस्तेमाल कर सकते हैं इस तरह की तलाश में:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/> 
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/> 
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/> 

    <appender name="ROLLING-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.TimeBasedRollingPolicy"> 
      <!-- daily rollover --> 
      <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern> 
     </rollingPolicy> 
    </appender> 

    <root level="INFO"> 
     <appender-ref ref="CONSOLE"/> 
     <appender-ref ref="ROLLING-FILE"/> 
    </root> 

</configuration> 
+0

मेरे लिए यह 'file' विशेषता को हटाते समय काम करता है, फिर मैं prop logging.file = path/fileName –

+0

निर्दिष्ट करता हूं, मैं इस कॉन्फ़िगरेशन की तलाश में था, जहां लॉगिंग कंसोल और फ़ाइल दोनों पर होगी। धन्यवाद ! – Digao

+0

किसी के पास yml फ़ाइल के माध्यम से समाधान है? मुझे एक ही समस्या का सामना करना पड़ रहा है: http://stackoverflow.com/questions/43177232/spring-boot-logback-rolling-file-append-er-not-working –