2016-06-28 21 views
5

परीक्षण के दौरान /tmp/spring.log फ़ाइल का उपयोग करता है मेरे स्प्रिंग बूट अनुप्रयोगों में से एक अपने मैवेन परीक्षण चरण के दौरान समस्याएं पैदा करता है।स्प्रिंग बूट

परीक्षण और "नियमित" एप्लिकेशन रनटाइम के दौरान दोनों, स्प्रिंग बूट एप्लिकेशन src/main/resources/logback-spring.xml के समान लॉगबैक कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है। इस कॉन्फ़िगरेशन फ़ाइल (transitively) में लॉगबैक कॉन्फ़िगरेशन फ़ाइलें base.xml और file-appender.xml शामिल हैं। ये कॉन्फ़िगरेशन फ़ाइलें लॉगबैक प्रॉपर्टीLOG_FILE=/tmp/spring.log सेट करती हैं।

मुझे लगता है कि यह सर्वोत्तम अभ्यास है कि फ़ाइल /tmp/server.log उपयोगकर्ता और समूह ${MY_SPRING_BOOT_APPLICATION} के स्वामित्व में है।

जेनकींस उपयोगकर्ता jenkins के रूप में चलाता है। jenkins में /tmp/server.log के लिए लेखन अनुमति नहीं है। इसलिए जेनकिट द्वारा निष्पादित जब जुनीट परीक्षण विफल हो जाते हैं।

  • लॉगिंग कॉन्फ़िगर करने के लिए इतना है कि यह अच्छी तरह से काम के दौरान सबसे अच्छा तरीका क्या है एक जेनकींस निर्माण के साथ-परीक्षणऔर इतना है कि यह सेट दैनिक रोलिंग प्रवेश जब Spring Boot's SysV init.d service functionality (में लॉग डालता है जो लाभ /var/log/)?
  • फाइल /tmp/spring.log को संशोधित किया जाएगा (और इसलिए टूटा जा सकता है) यदि दो या दो से अधिक वसंत बूट अनुप्रयोग एक ही समय में चल रहे हैं?

उत्तर

5

मेरी स्प्रिंग बूट आवेदन में, मैं src/test/resources/logback-test.xml करने के लिए <property name="LOG_TEMP" value="./logs"/> जोड़ लिया है:

<?xml version="1.0" encoding="UTF-8"?> 

<configuration scan="true"> 
    <property name="LOG_TEMP" value="./logs"/> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 

    <logger name="com.example" level="INFO"/> 


    <root level="WARN"> 
     <appender-ref ref="CONSOLE"/> 
    </root> 

</configuration> 

इस तरह, Maven परीक्षण के दौरान, एक अलग प्रवेश फ़ाइल वर्तमान (परीक्षण) में बनाया जाएगा कार्यशील निर्देशिका।

Props to welcor for helping out

+1

सुनिश्चित करें कि आपने संपत्ति से पहले संपत्ति को ओवरराइड किया है, जैसा कि यहां प्रदर्शित किया गया है। –