Tuesday 15 April 2014

c# - How log4net doesn't clear log each time calling XmlConfigurator.Configure() in a process -


मेरे आवेदन में, मैं 3 पुस्तकालयों को शामिल करता हूं:

  Log4net Common.Logging.log4net Quartz (लॉग को लिखने के लिए सामान्य। लॉगिंग.log4net का उपयोग करें)   

यह मेरा log4net अनुभाग विन्यास है:

  & lt; log4net & gt; & LT; जड़ & gt; & Lt; level value = "ALL" / & gt; & Lt; एपेन्डर-रिफ रेफरी = "फ़ाईलपेपेडर" / & gt; & Lt; / जड़ & gt; & Lt; एपेन्डर नेम = "फाइल ऐैपरैडर" प्रकार = "लॉग4नेट.एपैडर.फ़ाइलपरपेडर" & gt; & Lt; file value = "quartz.log" / & gt; & Lt; appendToFile मान = "गलत" / & gt; & Lt; लेआउट प्रकार = "log4net.Layout.PatternLayout" & gt; & Lt; रूपांतरणपटल मान = "% तारीख [% धागा]% स्तर% लकड़हारा -% संदेश% नईलाइन" / & gt; & Lt; / लेआउट & gt; & Lt; / appender & gt; & Lt; / log4net & gt;   

सब कुछ ठीक है लेकिन XmlConfigurator.Configure () के बारे में एक समस्या है। इस कमांड को 2 बार क्रम से कहा जाता है:

  • जब init अनुप्रयोग - & gt; मैं लॉग लिखता हूं।
  • क्वार्ट्ज को शुरु करते समय कॉल किया जाता है (मैं स्रोत कोड को पढ़ने के लिए कब सत्यापित करता हूं। Logging.log4net) - & gt; क्वार्ट्ज लॉग लिखते हैं।

    क्वार्ट्ज़ के बाद शुरू हुआ, मेरे लॉग XmlConfigurator.Configure () के कारण साफ़ हो गए थे। इसका मतलब यह है कि जब यह कमांड बुलाते हैं, तो लॉग को साफ़ कर दिया जाएगा। मैं नहीं चाहता कि मेरा नाम इस प्रक्रिया को एक प्रक्रिया में नामक कॉल के बाद साफ़ किया गया।

    मुझे स्रोत डीएलएल प्राप्त हो सकता है। Logging.log4net यह पता लगाने के लिए कोड बदलने के लिए कि log4net वास्तव में है या नहीं अभी तक विन्यस्त, और XmlConfigurator.Configure () बुला अगर नहीं लेकिन मुझे यह समाधान पसंद नहीं है।

    कृपया DLL लाइब्रेरी में परिवर्तन कोड के बिना कोई अन्य समाधान खोजने में मदद करें।

    और जानकारी:

    आपने कॉन्फ़िगर किया है कि फाइल एपेन्डर एक नया लॉग फ़ाइल बनाता है जब log4net पुन: कॉन्फ़िगर किया जाता है:

      & lt; appendToFile मान = "झूठे" / & gt;   

    इसे यहां बदलें:

      & lt; appendToFile मान = "सच" />   

    लॉग संदेश को फ़ाइल के अंत में जोड़ा जाएगा, भले ही आप XmlConfigurator.Configurator.Configure () कई बार कॉल करें।

No comments:

Post a Comment