2012-04-11 10 views
8

Czy używam Edytora konfiguracji usług firmy Microsoft do konfigurowania diagnostyki (rejestrowanie WCF) i nie mogę znaleźć żadnego sposobu na ustawienie maksymalnego rozmiaru pliku?Logowanie WCF, ustawić maksymalny rozmiar pliku?

Znalazłem MaxSizeOfMessageToLog, ale nie robi nic na temat rozmiaru pliku?

Edit 1: Zgodnie z tym: http://msdn.microsoft.com/en-us/library/aa395205.aspx Nie powinno być maxFileSizeKB na poziomie sharedListeners ale po uderzeniu miejsca w tagu Dodaj Nie rozumiem możliwość wpisywania maxFileSizeKB?

Edit 2: Przy dodawaniu maxFileSizeKB serivce nie rozpocznie się już, a nie będę się następujące excetion:

'maxFileSizeKB' nie jest poprawnym atrybut konfiguracja typu „System.Diagnostics.XmlWriterTraceListener ". Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania WWW. Sprawdź ślad stosu, aby uzyskać więcej informacji o błędzie i skąd pochodzi w kodzie. Szczegóły wyjątku: System.Configuration.ConfigurationErrorsException: 'maxFileSizeKB' nie jest poprawnym atrybutem konfiguracji dla typu "System.Diagnostics.XmlWriterTraceListener". Błąd źródła: Nieobsługiwany wyjątek został wygenerowany podczas wykonywania bieżącego żądania WWW. Informacje dotyczące pochodzenia i lokalizacji wyjątku można zidentyfikować, korzystając ze śledzenia stosu wyjątków poniżej.

Edit 3:

musiałem pobrać próbkę TraceListener kołowego i uwzględnić go w moim projekcie, nie ma wbudowany ogranicznik FILESIZE jest.

Mój config wygląda to teraz:

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

to ograniczenie plik dziennika wiadomość, ale nie pliku dziennika śledzenia?

+0

Czy mógłbyś dołączyć swoją konfigurację? –

+0

btw - tutaj jest kod dla 'CircularTraceListener': https://cbasetest.svn.codeplex.com/svn/SoftLibrary_Dev/SDFL/Reputation/RepuService/FrontEndCommon/CircularTraceListener.cs –

+0

przy okazji, czy kiedykolwiek próbowałeś użyć" usługi Microsoft Edytor konfiguracji "dla tego zadania (" C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools \ SvcConfigEditor.exe ") –

Odpowiedz

11

Jest tak, ponieważ łącze, które podałeś, używa niestandardowego detektora śledzenia ("Microsoft.ServiceModel.Samples.CircularTraceListener"), które ma właściwość "maxFileSizeKB".

Nie ma wbudowanej funkcjonalności do ograniczania/zwijania plików svclog, więc naprawdę musisz użyć niestandardowego detektora śledzenia. Możesz użyć próbki użytej w twoim linku (przeczytaj na końcu artykułu, jak pobrać kod). Lub tutaj jest another one, które mogą być przydatne.

+0

Ups, podczas pisania wpisu, zaktualizowałam twoje pytanie :) – Fabske

7

tylko dodać do @Fabske odpowiedź, że Inorder to zadziałało

1) Pobieranie próbek WCF: http://go.microsoft.com/fwlink/?LinkId=150780

2) Otwarte : \ WF_WCF_Samples \ WCF \ Podstawowe \ Zarządzanie \ CircularTracing

3) Budowanie rozwiązania i chwycić CircularTraceListener.dll

4) Dodaj ten dll do projektu odwołuje

5) Zaktualizuj konfigurację tak, jak pokazano: http://msdn.microsoft.com/en-us/library/aa395205(v=vs.100).aspx

+2

Zauważ także literówkę obszaru nazw w artykule MSDN (jak zauważył komentator), aby nie zmarnować mnóstwa czasu, tak jak próbowałem dowiedzieć się, dlaczego Twój projekt wygrał ' t run ... –

+0

Zrobiłem to. Pobrałem próbkę, zbudowałem .dll, umieściłem to w referencjach mojego projektu, zrobiłem tę rzecz konfiguracji i zadbałem o literówkę (której już nie ma). Ale '' mxFileSizeKB'' jest nadal oznaczony jako nieznany i nie dostaję pliku. – ecth

+1

OK. Zarządzałem nim. Mój kod: http://pastebin.com/JeYE3rEt. '' maxFilesizeKB'' jest nadal oznaczony jako nieznany, ale działa, a plik pozostaje w odpowiednim rozmiarze. Również moja switchValue to '' All'' i możesz chcieć ustawić ją na '' Information'', '' Warning'' lub coś w tym stylu;) – ecth

Powiązane problemy