मेरे पास एक सेवा अनुप्रयोग है जो स्टार्टअप पर एक XML फ़ाइल पढ़ता है और XML फ़ाइल में प्रत्येक प्रविष्टि के लिए थ्रेड प्रारंभ करता है। प्रत्येक थ्रेड एक वर्कर क्लास का एक उदाहरण बनाता है जिसके लिए थ्रेड को किसी थ्रेड विशिष्ट लॉग फ़ाइल में लॉग आउट करने की आवश्यकता होती है।प्रत्येक व्यक्तिगत थ्रेड के लिए एक व्यक्तिगत लॉग फ़ाइल में लॉगिंग
सेवाओं app.config मैं log4net विन्यास सेटिंग्स एक एक्सएमएल appender उपयोग करने के लिए निर्धारित किया है और फ़ाइल एक PatternString के रूप में निर्दिष्ट किया जाता है में नीचे दिखाया गया है:
<appender name="XmlAppender" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="D:\Temp\Logs\%property{LogName}.log" />
<immediateFlush value="true"/>
<appendToFile value="true" />
<layout type="log4net.Layout.SimpleLayout" />
</appender>
के प्रत्येक उदाहरण के लिए एक धागा बंद कर दिया विधि में मजदूर वर्ग बनाया गया है, मुझे log4net.LogManager.GetLogger("MyLogger")
विधि का उपयोग करके लॉगर मिलता है और फिर मैंने ThreadContext.Properties["LogName"] = "Log name prefix"
का उपयोग कर वर्तमान थ्रेड पैटर्नस्ट्रिंग लॉगनाम संपत्ति सेट की है।
सभी फाइलें बनाई गई हैं, लेकिन जब लॉगर कहलाता है तो यह सभी संदेश को एक प्रतीत होता है यादृच्छिक फ़ाइल में लॉग करता है।
मैंने समाधान खोजने की कोशिश करते समय कुछ समय के लिए खोज की है या कुछ गलत जवाब दे रहा हूं लेकिन मुझे कोई भाग्य नहीं मिला है।
क्या किसी को पता है कि यह क्यों हो रहा है?
बड़ा धन्यवाद! मुझे थ्रेडिंग और विभिन्न फाइलों में लॉगिंग के साथ एक ही समस्या थी। मैंने कई पदों और समाधानों को देखा, लेकिन केवल यह ही मुझे परेशान करता था। –
बहुत बहुत धन्यवाद ... इस दृष्टिकोण ने मेरी समस्या हल की ... – Emerson