Microsoft Enterprise Library 5.0 Ведение журнала происходит только при первых нескольких вызовах метода WCF - PullRequest
2 голосов
/ 08 сентября 2011

Я наблюдаю ошибочное ведение журнала при ведении журнала Enterprise Library 5.0.

Проблема связана с приложением WCF 4.0, размещенным в IIS (7.5), на серверах Windows 2008 R2 в конфигурации с балансировкой нагрузки.Я использую Unity (2.0) для внедрения зависимостей.Я настроил библиотеку для входа в текстовый файл.Приложение использует AppFabricCache.

Похоже, что регистрация успешна в первые несколько вызовов после перезапуска веб-приложения, в котором размещается служба.После этого дальнейшая регистрация не видна.Я либо допустил ошибку в конфигурации, либо может возникнуть некоторая конкуренция при записи / очистке вывода в текстовый файл.Я понимаю, что класс Logging работает потокобезопасным способом.

Ниже приведена соответствующая часть файла конфигурации.Любые мысли приветствуются.Спасибо.

<loggingConfiguration name="loggingConfiguration" tracingEnabled="true" defaultCategory="General">
    <listeners>
       <add name="Rolling File Trace Listener"
          type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          fileName="d:\SOMEPATH\Logs\trace.log"
          formatter="Text Formatter"
          header="" footer=""
          timeStampPattern="yyyy-MM-dd hh:mm:ss.fff"
          traceOutputOptions="None"
          maxArchivedFiles="2000"
          rollFileExistsBehavior="Increment" rollInterval="Day" rollSizeKB="1024" />
    </listeners>
     <formatters>
        <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         template="{timestamp(yyyyMMdd HH:mm:ss.fff)} - {message}"
         name="Text Formatter" />
     </formatters>
    <categorySources>
      <add switchValue="All" name="General">
        <listeners>
           <add name="Rolling File Trace Listener" />
        </listeners>
      </add>
    </categorySources>
    <specialSources>
      <allEvents switchValue="All" name="All Events" />
      <notProcessed switchValue="All" name="Unprocessed Category" />
      <errors switchValue="All" name="Logging Errors &amp; Warnings">
        <listeners>
           <add name="Rolling File Trace Listener" />
        </listeners>
      </errors>
    </specialSources>
  </loggingConfiguration>  

Ответы [ 2 ]

2 голосов
/ 08 сентября 2011

Одна вещь, которую вы должны сделать, это изменить errors specialSource, чтобы не использовать прослушиватель трассировки Rolling File.Он должен использовать другого слушателя, такого как FlatFileTraceListener или EventLogTraceListener.

. Я предполагаю, что происходит ошибка при записи вашей записи журнала (возможно, проблема с разрешением при попытке прокрутки).Но вы ничего не видите в журналах, потому что источник ошибок настроен на использование того же прослушивателя, который только что вышел из строя, поэтому регистрация ошибки также не удалась.

0 голосов
/ 12 сентября 2011

Благодаря Turzo я перенастроил протоколировать ошибки в плоский файл.Затем я смог увидеть детализацию сообщения об ошибке.Часть сообщения об ошибке была запрещена доступ.Частично это связано с отсутствием пути к файлу / неправильным форматом.Оказывается, что TimeStampPattern был указан неверно, поскольку он не генерирует принятый формат имени файла.Я изменил его на: timeStampPattern = "yyyyMMdd_hhmm" и теперь у меня генерируются скользящие файлы.

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