2017-09-18 10 views
2

私は、Webサービス上でエラーログを実装するためにMicrosoft.ServiceModel.Samples.CircularTracecListenerバイナリを使用しています。c#円形のtraceListenerがファイルをローリングしない

maxFileSizeKBに達するまでファイルに書き込んだ後、2次ファイルに移動する必要があります。 このプロセスは、小さなファイルサイズの制限でテストし、短時間でローリングが発生するとうまく動作します。

奇妙なことは、私がmaxFileSizeKBを設定したとき、次の日に、メイン・ファイルをオーバーライドしてセカンダリをそのままにしていることがわかりました。以下のように設定

web.configファイル:

<system.diagnostics> 
<sources> 
    <source name="System.ServiceModel" switchValue="Information,ActivityTracing" > 
    <listeners> 
     <add name="CircularTraceListener" /> 
    </listeners> 
    </source> 
</sources> 
<sharedListeners> 
    <add name="CircularTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener" 
     initializeData="c:\log\webserviceLog.xml" maxFileSizeKB="5120" /> 
</sharedListeners> 
<trace autoflush="true" /> 

誰かが同様の問題に遭遇したことがありますか?

私は、Webサービスを再起動し、最初のファイルから始めることしか考えられません。

アプリケーションプールリサイクルですか?

iisログをチェックすると、ログファイルが消去されるのと同時にアプリケーションプールが呼び出されることがわかります。

答えて

2

Microsoft.ServiceModel.Samples.CircularTraceListenerコードサンプルでは、​​maxFileSizeKBの設定が1回読み込まれます。その設定の変更を有効にするには、ホスティングプロセスを再開する必要があります。

編集:

あなたはweb.configファイルを編集、IISアプリケーションプールは、デフォルトで自動的に再利用されます。

IISアプリケーションプールをリサイクルすると、メインファイル(webserviceLog00.xml)が上書きされます。

「アプリケーションプール>詳細設定...>リサイクル>設定変更のリサイクルを無効にする」をtrueに設定すると、アプリケーションプールが再開しないようにすることができます。

+0

確認して、maxFileSizeKBの変更を再起動せずにサービスに更新しています。 – ManuelCh

+1

はい、IISアプリケーションプールをリサイクルすると、メインファイル(webserviceLog00.xml)が上書きされます。 web.configを編集すると、IISアプリケーションはデフォルトで自動的にリサイクルされます。 [アプリケーションプール]> [詳細設定]> [リサイクル]> [設定変更のリサイクルを無効にする]をtrueに設定することで変更できます。 –

関連する問題