2012-04-11 10 views
8

Ich benutze Microsoft Service Configuration Editor, um Diagnose (WCF-Protokollierung) einzurichten und ich kann keine Möglichkeit finden, die maximale Dateigröße zu setzen?WCF-Protokollierung, maximale Dateigröße einstellen?

Ich habe die MaxSizeOfMessageToLog gefunden, aber das nichts über die Dateigröße tun?

Edit 1: Nach diesem: http://msdn.microsoft.com/en-us/library/aa395205.aspx Es sollte eine maxFileSizeKB auf shared Ebene sein, aber wenn der Platz in dem Add-Tag schlage ich nicht die Möglichkeit maxFileSizeKB zu geben?

Edit 2: Wenn die maxFileSizeKB Zugabe der serivce nicht mehr anspringt, stattdessen ich folgende excetion erhalten:

‚maxFileSizeKB‘ ist keine gültige Konfigurationsattribut für Typ ‚System.Diagnostics.XmlWriterTraceListener ". Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es aus dem Code stammt. Ausnahmedetails: System.Configuration.ConfigurationErrorsException: 'maxFileSizeKB' ist kein gültiges Konfigurationsattribut für den Typ 'System.Diagnostics.XmlWriterTraceListener'. Quellfehler: Eine nicht behandelte Ausnahme wurde während der Ausführung der aktuellen Webanforderung generiert. Informationen über den Ursprung und den Ort der Ausnahme können anhand der folgenden Ausnahme-Stack-Trace identifiziert werden.

bearbeiten 3:

ich die Rundtracelistener Datei herunterzuladen hatte und es in meinem Projekt, gibt es keine in filesize Begrenzer eingebaut. jetzt

Meine Config wie folgt aussieht:

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

Das die Nachricht Protokolldatei zu begrenzen, aber nicht die Spur Protokolldatei?

+0

könnten Sie bitte Ihre Konfig-Abschnitt? –

+0

BTW - hier ist der Code für 'CircularTraceListener': https://cbasetest.svn.codeplex.com/svn/SoftLibrary_Dev/SDFL/Reputation/RepuService/FrontEndCommon/CircularTraceListener.cs –

+0

BTW, haben Sie jemals versucht," Microsoft Service Konfigurationseditor "für diese Aufgabe (" C: \ Programme (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Werkzeuge \ SvcConfigEditor.exe ") –

Antwort

11

Dies liegt daran, dass die Verknüpfung, die Sie angegeben haben, einen benutzerdefinierten Ablaufverfolgungslistener ("Microsoft.ServiceModel.Samples.CircularTraceListener") verwendet, der über eine Eigenschaft "maxFileSizeKB" verfügt.

Es gibt keine integrierte Funktion, um svclog-Dateien zu begrenzen/rollen, so dass Sie wirklich einen benutzerdefinierten Trace-Listener verwenden müssen. Sie können das in Ihrem Link verwendete Beispiel verwenden (lesen Sie am Ende des Artikels, wie Sie den Code herunterladen). Oder hier ist another one das kann nützlich sein.

+0

Hoppla! Sie haben Ihre Frage aktualisiert, während ich getippt habe :) – Fabske

7

Ich will nur hinzufügen Antwort auf @Fabske, die für diese inOrder

1) Laden Sie WCF Proben arbeiten: http://go.microsoft.com/fwlink/?LinkId=150780

2) Öffnen : \ WF_WCF_Samples \ WCF \ Grund \ Management \ CircularTracing

3) Erstellen Sie die Lösung und greifen die CircularTraceListener.dll

4) hinzufügen, dass die dLL zu Ihrem Projekt verweist

5) Aktualisieren Sie Ihre Konfiguration wie gezeigt http://msdn.microsoft.com/en-us/library/aa395205(v=vs.100).aspx

+2

Beachten Sie auch den Namespace Tippfehler im MSDN-Artikel (wie von einem Kommentator hervorgehoben), damit Sie nicht so viel Zeit verschwenden, wie ich versucht habe herauszufinden, warum Ihr Projekt gewonnen hat. t run ... –

+0

habe ich das getan. Probe heruntergeladen, DLL erstellt, in die Referenzen meines Projekts eingefügt, die Konfiguration erledigt und den Tippfehler (der nicht mehr vorhanden ist) berücksichtigt. Aber '' mxFileSizeKB'' ist immer noch als unbekannt markiert und ich bekomme keine Datei. – ecth

+1

Okay. Verwaltete es. Mein Code: http://pastebin.com/JeYE3rEt. '' maxFilesizeKB'' ist immer noch als unbekannt markiert, aber es funktioniert und die Datei bleibt in der richtigen Größe. Auch mein switchValue ist '' All'' und du könntest es auf '' Information'', '' Warning'' oder so einstellen;) – ecth

Verwandte Themen