2012-09-10 5 views
9

初めてlog4netを設定しようとしていますが、すべてが正しく設定されていることが確かですが、空のログファイルを取得した後、log4netデバッガを有効にしました。私は現在、thusly私のWeb.configファイルを使用して設定log4netのいる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. 

<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)log4netののバージョンを助け? 2)これは、同じアプリケーションの複数のインスタンスが起動されたときに発生しますか? – sll

答えて

2

私はこのパスにアクセスしようとしている異なるアセンブリ間で複数のアペンダーを持っていると思うので、それらはすべて同時に適切なログファイルを保持しようとします。しかし、確かに、私はあなたのファイルがあなたが期待していない何かに保持されていないことを確認するためにUnlockerを使用することをお勧めします。このappenderの複数のインスタンスが同じファイルを開こうとしている場合は、appenderを正しく使用していないことが問題になります。アペンダーがアセンブリ全体で使用されている場合、2つの呼び出しはうまくいっておらず、このように既に使用中エラーが発生しています。このような場合は、リファクタリングが唯一の可能性があります。

+0

この問題を解決しました。それは私がlog4netで解決する各問題が別のものを作成するように思えます... – Homer2029

+1

あなたは基本的にlog4netはスレッドセーフではないと言っていますか? –

5

アペンダ内のファイルとは対照的に、私は、ディレクトリの名前を指定し、エラーメッセージが不可解であるので、私はまた、このエラーを得た:

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

私はなぜそれが働いたのか分かりませんが、それはしました。ありがとう。 –

0

私はログファイルを書き込もうとしたとき、私はこの問題を得ましたサブディレクトリ(@PeteNと同じ)にあります。正しい構文を使用している場合、これはもう発生しdoens't、デアペンダの設定セットに:

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

希望これは

+0

私はこれを今試しましたが、私は何の違いも見ません。 –

関連する問題