2012-03-06 12 views
0

私のWebサービスにlog4netを使用しようとしています。私が直面している問題は、同時に複数のメッセージを送信しようとすると、最初のメッセージのログしか作成されないということです。Log4Netメッセージログ

一度に1つのメッセージのみを送信し、メッセージがリスナーに到達するまでログが正常に機能しています。しかし、同時に複数のメッセージを拾うと(リスナーでの応答を待たずに)、最初に送信したメッセージが記録されます。

これは私の設定です。誰も私が私が行方不明です何を教えてくださいすることができます

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 

    <log4net> 
     <root> 
      <level value="ALL" /> 
      <appender-ref ref="ArchiveRollingFileAppender" /> 
      <appender-ref ref="LogRollingFileAppender" /> 

     </root> 

     <appender name="LogRollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
      <filter type="log4net.Filter.PropertyFilter"> 
       <key value="Source" /> 
       <stringToMatch value="Log" /> 
      </filter> 
      <threshold value="OFF"/> 
      <!--<lockingModel type="dndn.ebl.framework.logging.FileLock" />--> 
      <filter type="log4net.Filter.DenyAllFilter" /> 
      <file type="log4net.Util.PatternString"> 
       <conversionPattern value="{LogFileName}"/> 
      </file> 
      <appendToFile value="true" /> 
      <rollingStyle value="Size" /> 
      <maxSizeRollBackups value="10" /> 
      <maximumFileSize value="1MB" /> 
      <staticLogFileName value="true" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level [%property{method}] - %message%newline" /> 
      </layout> 
     </appender> 
     <appender name="ArchiveRollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
      <filter type="log4net.Filter.PropertyFilter"> 
       <key value="Source" /> 
       <stringToMatch value="Archive" /> 
      </filter> 
      <threshold value="OFF"/> 
      <!--<lockingModel type="dndn.ebl.framework.logging.FileLock" />--> 
      <filter type="log4net.Filter.DenyAllFilter" /> 
      <file type="log4net.Util.PatternString"> 
       <conversionPattern value="{ArchiveFileName}"/> 
      </file> 
      <appendToFile value="true" /> 
      <rollingStyle value="Size" /> 
      <maxSizeRollBackups value="10" /> 
      <maximumFileSize value="1MB" /> 
      <staticLogFileName value="true" /> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%message%newline" /> 
      </layout> 
     </appender> 
    </log4net> 
</configuration> 

答えて

1

は、あなたは私がそのをのための個別のログファイルを作成し、一度に約10のメッセージのように送信していたときに

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
+0

にあなたのロックモデルを設定してみてくださいました最初の5番目と6番目のファイルは、6番目のメッセージのIDで作成されますが、残りのすべてのファイルのログが保存されます。なぜこれが起こっているのか教えてください。 –

+0

私は ''の 'PatternString'の経験はありません。私はいつも ''を使います。 –