2012-04-11 53 views
8

即時通訊使用Microsoft服務配置編輯器來設置診斷(WCF日誌),我找不到任何方式來設置最大文件大小?WCF日誌記錄,設置最大文件大小?

我發現了MaxSizeOfMessageToLog,但是對文件大小沒有任何作用?

編輯1:根據這個:http://msdn.microsoft.com/en-us/library/aa395205.aspx 應該有在sharedListeners水平maxFileSizeKB但在加載標籤打空間時,我不明白鍵入maxFileSizeKB的可能性?

編輯2:當添加maxFileSizeKB中的service將不再啓動,而不是我將得到以下EXCETION:

「maxFileSizeKB」不是類型的有效配置屬性「System.Diagnostics.XmlWriterTraceListener 」。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.Configuration.ConfigurationErrorsException:'maxFileSizeKB'不是類型爲'System.Diagnostics.XmlWriterTraceListener'的有效配置屬性。 源錯誤: 執行當前Web請求期間生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

編輯3:

我必須下載該通函的TraceListener樣品,並將其包含在我的項目,沒有內置的檔案大小限制。

我的配置現在看起來是這樣的:

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing"> 
     <listeners> 
      <add name="ServiceModelMessageLoggingListener"/> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel" switchValue="Warning,ActivityTracing" 
     propagateActivity="false"> 
     <listeners> 
      <add name="ServiceModelTraceListener"/> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_messages.svclog" 
     type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener" 
     name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024"> 
     <filter type="" /> 
     </add> 
     <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_tracelog.svclog" 
     type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener" 
     name="ServiceModelTraceListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024"> 
     <filter type="" /> 
     </add> 
    </sharedListeners> 

這限制了消息日誌文件,但沒有跟蹤日誌文件?

+0

請問您可否包括您的配置部分? – 2012-04-11 07:26:50

+0

btw - 這裏是'CircularTraceListener'的代碼:https://cbasetest.svn.codeplex.com/svn/SoftLibrary_Dev/SDFL/Reputation/RepuService/FrontEndCommon/CircularTraceListener.cs – 2012-04-11 07:28:19

+0

btw,你有沒有試過利用「微軟服務配置編輯器「(」C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ SvcConfigEditor.exe「) – 2012-04-11 07:32:58

回答

11

這是因爲您提供的鏈接使用了自定義的跟蹤偵聽器(「Microsoft.ServiceModel.Samples.CircularTraceListener」),它具有「maxFileSizeKB」屬性。

沒有內置函數來限制/滾動svclog文件,因此您確實需要使用自定義跟蹤偵聽器。 您可以使用鏈接中使用的示例(閱讀文章末尾的如何下載代碼)。或者這裏是another one可以是有用的。

+0

哎呀,你在我打字的時候更新了你的問題:) – Fabske 2012-04-11 08:27:39

7

只是要添加到@Fabske回答序這個工作

1)下載WCF樣本: http://go.microsoft.com/fwlink/?LinkId=150780

2)打開 :\ WF_WCF_Samples \ WCF \基本\管理\ CircularTracing

3)構建的解決方案,抓住CircularTraceListener.dll

4)該DLL添加到您的項目引用

5)更新您的配置,如圖所示http://msdn.microsoft.com/en-us/library/aa395205(v=vs.100).aspx

+2

還要注意MSDN文章中的命名空間錯字(正如評論員指出的),免得你浪費了一堆時間,就像我試圖弄清楚爲什麼你的項目贏了' t運行... – 2013-10-31 16:38:58

+0

我做到了。下載的樣本,構建.dll,將其放入我的項目的引用,做了配置的事情,並關心錯字(這是不存在的)。但''mxFileSizeKB''仍然被標記爲未知,我沒有得到一個文件。 – ecth 2015-04-15 07:45:25

+1

好的。管理它。我的代碼:http://pastebin.com/JeYE3rEt。 ''maxFilesizeKB''仍然被標記爲未知,但它工作並且文件保持正確的大小。另外我的switchValue是''All'',你可能想把它設置爲''Information'',''Warning''或類似的東西) – ecth 2015-04-15 08:32:23