Как включить ведение журнала сообщений и трассировки вместе с помощью библиотеки циклической трассировки? - PullRequest
0 голосов
/ 04 июля 2018

Чтобы уменьшить размер файлов журналов svc в моем проекте wcf, я провел исследование и обнаружил библиотеку CircularTracing, которая представляет собой шаблон, созданный Microsoft; В их документации они добавили пример трассировки, но в моем случае мне нужно сделать регистрацию сообщений, чтобы проверить входные данные, заполненные нашими разработчиками; Я попытался включить трассировку в одиночку -> она сработала успешно и сгенерировано 2 файла журнала; Я попытался включить ведение журнала сообщений в одиночку, и это работало успешно;

НО , когда я пытался заставить их работать вместе -> библиотека не генерировала 2 файла журнала web_Trace, генерируется только файл web_Trace00.cvclog, и его размер может превышать максимальный размер; Кроме того, библиотека сгенерировала 2 файла журнала сообщений, но без учета максимального размера файла;

enter image description here

Ниже приведен мой код web.config:

  <system.diagnostics>    
      <sources>
        <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing" >
          <listeners>
            <add name="CircularMessageListener" />
          </listeners>
        </source>   
        <source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true">
          <listeners>
            <add name="CircularTraceListener" />
          </listeners>
        </source>
      </sources>    
      <sharedListeners>
        <add name="CircularMessageListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
            initializeData="C:\inetpub\wwwroot\MyProject\Log\web_messages.svclog" maxFileSizeKB="20" />
        <add name="CircularTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
            initializeData="C:\inetpub\wwwroot\MyProject\Log\web_Trace.svclog" maxFileSizeKB="20" /> 
         </sharedListeners>    
      <trace autoflush="true" />  
    </system.diagnostics> 

Есть подсказка?

1 Ответ

0 голосов
/ 04 июля 2018

Я обнаружил, что для файла журнала сообщений: длина некоторых сообщений превышает 20 КБ, поэтому файл журнала сообщений становится больше 20, после чего другой файл регистрирует данные, как и ожидалось; Что касается файла журнала трассировки: я не знаю, почему другой файл не создан, я ценю, если кто-то может помочь мне обнаружить проблему ... но я в итоге использовал один файл для обоих методов ведения журнала:

<system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing" >
        <listeners>
          <add name="CircularMessageTraceListener" />
        </listeners>
      </source>
      <source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true">
          <listeners>
            <add name="CircularMessageTraceListener" />
          </listeners>
        </source>
    </sources>
    <sharedListeners>
      <add name="CircularMessageTraceListener" type="Microsoft.Samples.ServiceModel.CircularTraceListener, CircularTraceListener, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
          initializeData="C:\inetpub\wwwroot\MyProject\Log\web_messages_trace.svclog" maxFileSizeKB="20" />      
    </sharedListeners>
    <trace autoflush="true" />
  </system.diagnostics>

Таким образом, я могу создать 2 файла журнала, сгенерированных web_messages_trace, надеюсь, это может кому-нибудь помочь;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...