2011-06-20 28 views
7

मैं log4net का उपयोग करके किसी भी जानकारी, त्रुटि, डीबग लॉग लिखने में असमर्थ हूं, मैंने नेटवर्क सेवा के लिए अनुमति देने की कोशिश की, सब कुछ निर्देशिका asp.net temp फ़ोल्डर , लॉग फ़ोल्डर, यहां तक ​​कि सी: \,लॉग 4नेट केवल लिखने में असमर्थ है, केवल खाली फाइलें बना रहा है, लेकिन वास्तविक लॉग नहीं लिख रहा है

यह सिर्फ एक खाली फ़ाइल बनाते हैं। लेकिन लोग इन नहीं लिखते

क्या मुद्दा

Thx हो सकता है राज

+4

यदि लॉग 4नेट फ़ाइलें बना सकता है, तो शायद यह अनुमति अनुमति नहीं है। क्या आप निश्चित रूप से लॉगिंग स्तर के लिए लॉगिंग सक्षम हैं? कृपया हमें आपके पास लॉग 4नेट कॉन्फ़िगरेशन दिखाएं। – driis

+0

मैं यहां driis से सहमत हूं। यदि आप हमें अपनी log4net कॉन्फ़िगरेशन देते हैं तो हम आपको बता सकते हैं कि यह हमारे सुझाव पूल को सीमित नहीं करता है। –

उत्तर

9

मेरा अनुमान होगा कि आपके कॉन्फ़िग फ़ाइल में, आप एक लेआउट पैटर्न निर्दिष्ट नहीं किया। आम तौर पर, आपके पास ऐसा कुछ है जो आपके एपेंडर के अंदर ऐसा दिखता है:

<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> 
</layout> 

यह निर्दिष्ट करता है कि लॉग को क्या लिखना है। यदि आपके पास यह नहीं है, तो मुझे संदेह है कि यह कुछ भी लिखेंगे।

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

सबसे अच्छा सुझाव जो मैं दे सकता हूं वह आपके कॉन्फ़िगरेशन फ़ाइल की तुलना एक कामकाजी के साथ करना होगा। सुनिश्चित करें कि प्रत्येक अनुभाग में कार्यशील कॉन्फ़िगरेशन में समकक्ष है या आप जानते हैं कि इसे एक होने की आवश्यकता क्यों नहीं है। यहाँ एक लेख मैं log4net कि config के हर खंड पर स्पष्टीकरण भी शामिल है पर लिखा है और यह दिखाता है कि कैसे उन्हें लिखने के लिए:

http://www.codeproject.com/KB/dotnet/Log4net_Tutorial.aspx

तो इस सब में मदद नहीं करता, अपनी कॉन्फ़िग फ़ाइल पाठ पोस्ट करें आपका प्रश्न है ताकि हम इसे देख सकें।

2

इस समस्या का एक संभावित कारण लॉगिंग स्तर हो सकता है। लॉगिंग स्तर घातक पर सेट है और अगर वह यह है कि मामले web.config के इस हिस्से की जगह की कोशिश जांच करें कि:

<log4net> 
    ...... 
    <root> 
     <level value="DEBUG" /> 
      <appender-ref ref="RollingFileAppender" /> 
     </root> 
    .... 
</log4net> 

Furthemore मत भूलना में जांच करने के लिए:

<log4net> 
     ..... 
     <root> 
       <level value="FATAL" /> 
       <appender-ref ref="RollingFileAppender" /> 
      </root> 
     ..... 
    </log4net> 
इस के साथ

web.config खंड कुछ

<filter type="log4net.Filter.StringMatchFilter"> 
    <stringToMatch value="test" /> 
    </filter> 

उपधारा के अंतिम अवसर।

log.Debug("Db quering..."); 

यह हमेशा खाली वापस आ जाएगी, लेकिन यदि आप उदाहरण के लिए लिखें::

log.Debug("test: Db quering..."); 
भले ही लॉगिंग स्तर डिबग करने के लिए सेट कर दिया जाता इस मामले (उदाहरण के लिए) और आप अपने कोड में डाल somethig की तरह में

फिल्टर वर्गों बाहर टिप्पणी करने के लिए इसलिए कोशिश करो और भी इस लाइन

<filter type="log4net.Filter.DenyAllFilter" /> 

एक इस बिंदु अंत में आप यह काम कर रहा जाना चाहिए !!

उम्मीद है कि यह