2012-09-10 27 views
9

Dosyada kilit alamadı log4net'i ilk kez yapılandırmaya çalışıyorum, düzgün yapılandırılmış her şeyim var, ancak log4net hata ayıklayıcısını açtığım boş günlük dosyaları aldıktan sonra eminim. Şimdi sürekli aşağıdaki hata görüyorum:log4net GenericFailure.

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. 

Şu anda thusly benim Web.config dosyası aracılığıyla yapılandırılmış log4net adres:

<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> 

Yardım !!!

+0

1) Versiyon yardımcı olur: Bu de appender yapılandırma kümesinde, artık meydana doens't doğru sözdizimini kullanırken? 2) Aynı uygulamanın birden çok örneği başlatıldığında bu olur mu? – sll

cevap

2

Benim tahminim, bu yollara erişmeye çalışan farklı meclisler boyunca ekleyicinin birden çok kopyasına sahip olmanızdır, bu nedenle hepsi de uygun günlük dosyasını aynı anda tutmaya çalışır. Ancak, emin olmak için dosyanızın beklemediğiniz başka bir şey tarafından tutulmadığından emin olmak için Unlocker kullanmanızı öneririz. Aynı dosyayı açmaya çalışırken bu ekleyicinin birden çok örneğini yaşıyorsanız, sorununuz doğru olanı kullanmıyor olmanızdır; Eğer eklenti meclisler arasında kullanılıyorsa, o zaman iki eylemi birbiriyle güzelce oynamayacaktır ve bu şekilde zaten kullanılmakta olan bir hataya yol açacaktır. Bu durumda, yeniden değerlendirme muhtemelen sizin tek seçeneğinizdir.

+0

Bu sorunu çözdünüz. Log4net ile çözdüğüm her problem başka bir şey yaratıyor gibi görünüyor ... – Homer2029

+1

Temelde log4net'in thread-safe olmadığını mı söylüyorsun? –

5

appender bir dosya aksine bir dizinin adını belirtilen çünkü ben de bu hata var, hata mesajı gizlenmiştir:

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

Neden çalıştığını bilmiyorum, ama yaptı. Teşekkürler. –

0

Ben günlük dosyası yazmaya çalıştığında bu sorun var bir alt dizinde (@PeteN ile aynı).

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

umut bu log4net ait

+0

Bunu şimdi denedim ve hiçbir fark göremiyorum. –