2012-09-10 11 views
9

पर लॉक प्राप्त करने में असमर्थ मैं पहली बार लॉग 4नेट को कॉन्फ़िगर करने का प्रयास कर रहा हूं, मुझे यकीन है कि मेरे पास सब कुछ ठीक से कॉन्फ़िगर किया गया है, हालांकि, खाली लॉग फ़ाइलों को प्राप्त करने के बाद मैंने लॉग 4नेट डीबगर चालू कर दिया। अब मैं लगातार निम्न त्रुटि देख रहा हूँ:log4net जेनेरिक विफलता। फ़ाइल

log4net:ERROR [RollingFileAppender] ErrorCode: GenericFailure. Unable to acquire lock on 
file "file path\file name" The process cannot access the file "file path\file name" because 
it is being used by another process. 

मैं वर्तमान में मेरे Web.config फ़ाइल thusly के माध्यम से कॉन्फ़िगर किया गया log4net है

<log4net debug="true"> 
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Logs\\TransferPicturesApplicationLog.txt"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="5"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
    <param name="LevelMin" value="ERROR"/> 
    <param name="LevelMax" value="DEBUG"/> 
    </filter> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %level %logger - %message%newline"/> 
    </layout> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
</appender> 
<root> 
    <level value="INFO"/> 
    <appender-ref ref="RollingFileAppender"/> 
</root> 
<logger> 
    <level value="DEBUG"/> 
    <appender-ref ref="RollingFileAppender"/> 
</logger> 
</log4net> 

मदद !!!

+0

1) संस्करण: सही सिंटैक्स इस doens't अब पाए जाते हैं, डी appender config सेट में उपयोग करते समय? 2) क्या ऐसा तब होता है जब एक ही आवेदन के कई उदाहरण लॉन्च किए जाते हैं? – sll

उत्तर

2

मेरा अनुमान है कि आपके पास इस पथ तक पहुंचने की कोशिश कर रहे विभिन्न असेंबली में एपेंडर की कई प्रतियां हैं, इसलिए वे सभी एक ही समय में उचित लॉग फ़ाइल को पकड़ने का प्रयास करते हैं। हालांकि, यह सुनिश्चित करने के लिए, मैं आपको यह सुनिश्चित करने के लिए Unlocker का उपयोग करने की सलाह दूंगा कि आपकी फ़ाइल किसी और चीज से नहीं हो रही है जिसे आप उम्मीद नहीं करते हैं। यदि आपके पास एक ही फ़ाइल खोलने की कोशिश कर रहे इस एपेंडर के कई उदाहरण हैं, तो आपकी समस्या यह होगी कि आप सही ढंग से एपेंडर का उपयोग नहीं कर रहे हैं; यदि एपेंडर को असेंबली में इस्तेमाल किया जा रहा है तो इसके दो आविष्कार एक दूसरे के साथ अच्छी तरह से नहीं खेलेंगे, जिससे पहले से ही इस तरह की उपयोग में त्रुटि आती है। यदि ऐसा है, तो रिफैक्टरिंग संभवतः आपका एकमात्र विकल्प है।

+0

इस समस्या को हल किया। ऐसा लगता है कि लॉग 4नेट के साथ हल होने वाली प्रत्येक समस्या को अन्य बनाता है ... – Homer2029

+1

क्या आप मूल रूप से कह रहे हैं कि log4net थ्रेड-सुरक्षित नहीं है? –

5

मैं भी इस त्रुटि क्योंकि मैं एक निर्देशिका का नाम निर्दिष्ट किया गया है appender में एक फ़ाइल के लिए विरोध किया है, त्रुटि संदेश गुप्त है:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
     <file value="C:\DirectoryNameHere\MyBad" /> 
+0

मुझे नहीं पता कि यह क्यों काम करता है, लेकिन ऐसा हुआ। धन्यवाद। –

0

मैं जब मैं लॉगफ़ाइल लिखने का प्रयास किया इस समस्या को मिला एक उपनिर्देशिका में (@PeteN के समान)।

<appender name="TestLogAppender" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value=".\logDirectory\LogFileName.csv" /> 
    <....> 

आशा है कि यह log4net की मदद करता है

+0

मैंने अभी यह कोशिश की, और मुझे कोई फर्क नहीं पड़ता। –