2012-10-06 23 views
10

क्या 5 अलग-अलग प्रक्रियाओं से एक ही लॉग फ़ाइल में लिखना संभव है?लॉग 4नेट कई प्रक्रियाओं से फ़ाइल लिखें

मैं लॉगिंग के लिए लॉग 4नेट का उपयोग कर रहा हूं, लेकिन ऐसा लगता है कि फ़ाइल में केवल 1 प्रक्रिया लिख ​​रही है, जब मैं इस प्रक्रिया को बंद करता हूं, दूसरी प्रक्रिया लिख ​​रही है।

मैं सभी को एक साथ लिखना चाहता हूं।

कैसे करें?

उत्तर

15

आप कई प्रक्रियाओं से एक एकल फाइल में लिखने के लिए चाहते हैं, तो आपके <appender> नोड के लिए LockinModel रूप MinimalLock जोड़ें:

<appender .... > 
    ...... 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    ...... 
</appender> 

खबरदार इस प्रदर्शन पर कुछ प्रभाव पड़ता है।

5

हालांकि @ इरविन की सलाह ज्यादातर मामलों में काम करती है, फिर भी आपको पुनर्विचार करना चाहिए यदि बेहतर आर्किटेक्चर प्रदर्शन में सुधार करने में मदद कर सकता है।

उदाहरण के लिए, माइक्रोसॉफ्ट आईआईएस सर्वर में कई कार्यकर्ता प्रक्रियाएं चल रही हैं, प्रत्येक नामित पाइप के माध्यम से आईआईएस सेवा प्रक्रिया में प्रत्येक लॉग प्रविष्टियां भेज रही हैं। और केवल आईआईएस सेवा प्रक्रिया को लॉग फाइलों को लिखने का अधिकार है। इस तरह, कार्यकर्ताओं को लॉग फ़ाइलों को लॉक करने की आवश्यकता नहीं होती है, और सेवा प्रक्रिया प्रविष्टियों को कैश कर सकती है और उन्हें बैचों में लिख सकती है।

आईआईएस के दृष्टिकोण का पालन करना और अच्छा प्रदर्शन प्राप्त करना बहुत आसान है। फ़ाइल ताले के बिना।

(अपडेटेडः अब आप LogMaster4Net का उपयोग कर सकते हैं, जो यूडीपी के आधार पर इस तरह के एक आर्किटेक्चर को लागू करता है।)